diff --git a/.gitignore b/.gitignore index 240168a..a7a3594 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ data/*.sqlite3 *.sqlite3 *.zip data9 +.venv +.venv/* # graphify: ignore regenerable cache and dated backups, keep the graph itself graphify-out/cache/ diff --git a/.graphifyignore b/.graphifyignore index c9c621a..8df7ffe 100644 --- a/.graphifyignore +++ b/.graphifyignore @@ -12,11 +12,13 @@ data9/ *.zip khatibi.zip db.json +PROJECT_TREE.txt # Python caches __pycache__/ *.pyc # Backups and scratch copies +backups/ admin_panel/views - Copy.py admin_panel/viewsBK.py diff --git a/PROJECT_TREE.txt b/PROJECT_TREE.txt index b2d2722..2fa0454 100644 --- a/PROJECT_TREE.txt +++ b/PROJECT_TREE.txt @@ -1,11 +1,11 @@ Project Root: khatibi -Generated At: 2026-10-09T13:46:35+00:00 -Python Files: 95 -Django Files: 13 +Generated At: 2026-10-09T15:40:01+00:00 +Python Files: 126 +Django Files: 16 JavaScript/TypeScript Files: 14 HTML Files: 50 -Total Files: 412 -Total Directories: 66 +Total Files: 447 +Total Directories: 71 khatibi ├── .cursor @@ -95,6 +95,16 @@ khatibi │ │ ├── 0055_action_nextnazardt.py │ │ ├── 0056_auto_20260731_1824.py │ │ └── __init__.py +│ ├── models +│ │ ├── __init__.py +│ │ ├── actions.py +│ │ ├── customers.py +│ │ ├── factors.py +│ │ ├── finance.py +│ │ ├── products.py +│ │ ├── store.py +│ │ ├── system.py +│ │ └── users.py │ ├── static │ │ └── admin_panel │ │ ├── DataTables @@ -230,22 +240,42 @@ khatibi │ │ ├── __init__.py │ │ ├── custom_tags.py │ │ └── remove_q_p.py +│ ├── views +│ │ ├── __init__.py +│ │ ├── _helpers.py +│ │ ├── actions.py +│ │ ├── auth.py +│ │ ├── cheque_inquiry.py +│ │ ├── customers.py +│ │ ├── factors.py +│ │ ├── finance.py +│ │ └── store.py │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── context_processor.py -│ ├── models.py │ ├── services.py │ ├── tests.py │ ├── urls.py │ ├── views - Copy.py -│ ├── views.py │ └── viewsBK.py +├── backups +│ └── refactor-2026-10-09 +│ ├── admin.py +│ ├── apps.py +│ ├── context_processor.py +│ ├── MANIFEST.sha256 +│ ├── models.py +│ ├── services.py +│ ├── urls.py +│ └── views.py ├── data9 │ ├── db2 (2).sqlite32 │ ├── db2.sqlite32 │ ├── db222.sqlite3 -│ └── kt.sqlite3 +│ ├── kt.sqlite3 +│ ├── kt.sqlite3-shm +│ └── kt.sqlite3-wal ├── graphify-out │ ├── 2026-10-09 │ │ ├── .graphify_analysis.json @@ -467,6 +497,15 @@ khatibi │ └── wsgi.py ├── static │ └── .gitkeep +├── tests +│ ├── __init__.py +│ ├── factories.py +│ ├── test_customers.py +│ ├── test_factors.py +│ ├── test_inventory.py +│ ├── test_models_contract.py +│ ├── test_urls_contract.py +│ └── test_view_smoke.py ├── .dockerignore ├── .gitignore ├── .graphifyignore @@ -485,4 +524,5 @@ khatibi ├── project_tree.py ├── reconciliation_tool.py ├── requirements.txt -└── requirements2.txt +├── requirements2.txt +└── ripwire - README.md diff --git a/admin_panel/models.py b/admin_panel/models.py deleted file mode 100644 index ea8b522..0000000 --- a/admin_panel/models.py +++ /dev/null @@ -1,515 +0,0 @@ -from django.core.exceptions import ValidationError -from django.db import models -from django.db.models import Sum -# from django.db.models.signals import post_save, post_delete -from django.dispatch import receiver -from django.db import transaction, connection # اصلاح فیکس خطای تراکنش -from django.contrib.auth.models import User -from django.contrib.auth import get_user_model -from django.core.validators import RegexValidator - -userModel = get_user_model() - - -# اصلاح مدل کاربر: تبدیل به پروفایل برای حفظ امنیت و اتصال به سیستم پیشفرض جنگو -class UserProfile(models.Model): - UserTypeList = [ - ('admin', 'admin'), - ('office', 'office'), - ('operator', 'operator'), - ] - user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile') - user_type = models.CharField(max_length=10, choices=UserTypeList) - name_family = models.CharField(max_length=200) - create_date = models.DateTimeField(auto_now_add=True) - - def __str__(self): - return f"{self.user.username} ({self.user_type})" - - -class Customer(models.Model): - class Meta: - permissions = [ - ("AddCustomer", "AddCustomer"), - ("DelCustomer", "DelCustomer"), - ("EditCustomer", "EditCustomer"), - ("ViewCustomer", "ViewCustomer") - ] - name_family = models.CharField(max_length=200) - address = models.CharField(max_length=200) - phone1 = models.CharField(max_length=20, default='') - phone2 = models.CharField(max_length=20, default='', null=True, blank=True) - phone3 = models.CharField(max_length=20, default='', null=True, blank=True) - idCode = models.CharField(max_length=20, default='', null=True, blank=True) - installDate = models.DateField(auto_now_add=True) - create_date = models.DateTimeField(auto_now_add=True) - last_bazdid_dt = models.DateTimeField(null=True, blank=True) - laghv_bazdid = models.BooleanField(null=True, blank=True, default=False) - - # فیلد جدید برای حذف نرم (بدون تداخل با دادههای قبلی) - is_active = models.BooleanField(default=True, null=True, blank=True, help_text="وضعیت فعالیت مشتری") - - def __str__(self): - return self.name_family - - # بازنویسی متد حذف: جلوگیری از فاجعه در دیتابیس - def delete(self, *args, **kwargs): - # به جای حذف فیزیکی که انبار و فاکتورها را نابود میکند، مشتری را غیرفعال میکنیم - self.is_active = False - self.save() - -class PhoneNumber(models.Model): - customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name='phones') - title = models.CharField(max_length=50, default='تلفن', blank=True, null=True, help_text="عنوان شماره (مثل: موبایل پدر)") - phone_number = models.CharField(max_length=20) - - def __str__(self): - return f"{self.title}: {self.phone_number}" - -class StoreRoom(models.Model): - class Meta: - permissions = [ - ("ViewStore", "ViewStore"), - ("AddStore", "AddStore"), - ("EditStore", "EditStore"), - ("DelStore", "DelStore") - ] - store_name = models.CharField(max_length=200) - user = models.ManyToManyField(User, - blank=True, - verbose_name="دسترسی مشاهده انبار احتمالا", - help_text="از این برای دسترسی مشاهده آن اتبار استفاده می شود" - ) - owners = models.ManyToManyField( - User, - through='StoreRoomOwner', # کلید حل مشکل بدون شکستن کدهای قبلی - blank=True, - related_name="owned_storerooms", - verbose_name="مالکین انبار در فاکتور و موجودی و...", - help_text="این کاربران اگر فاکتور بزنند از این انبار کسر میگردد" - ) - - def __str__(self): - return self.store_name - - -class StoreRoomOwner(models.Model): - """ - این جدول واسط، پشت صحنه قرار میگیرد تا فقط قانون مالکیت را مدیریت کند. - کدهای دیگر پروژه اصلاً نیازی ندارند مستقیم با این جدول درگیر شوند. - """ - storeroom = models.ForeignKey(StoreRoom, on_delete=models.CASCADE) - - # OneToOneField تضمین میکند یک کاربر نمیتواند در این جدول (و هیچ انبار دیگری) تکرار شود - user = models.OneToOneField( - User, - on_delete=models.CASCADE, - error_messages={ - 'unique': 'این کاربر در حال حاضر مالک انبار دیگری است.' - } - ) - -class ProductCategory(models.Model): - category_name = models.CharField(max_length=50) - - def __str__(self): - return self.category_name - - -class Product(models.Model): - class Meta: - permissions = [ - ("ViewProduct", "ViewProduct"), - ] - ProductCategory = models.ForeignKey(ProductCategory, on_delete=models.CASCADE) - product_name = models.CharField(max_length=50) - product_price = models.IntegerField() - year = models.IntegerField(default=1400) - createdDT = models.DateTimeField(auto_now_add=True) - changeDT = models.DateTimeField(auto_now=True) - - def __str__(self): - return self.product_name - - -class Factor(models.Model): - class Meta: - permissions = [ - ("ViewFactor", "ViewFactor"), - ("DelFactor", "DelFactor"), - ("EditFactor", "EditFactor"), - ("AddFactor", "AddFactor") - ] - customer = models.ForeignKey(Customer, on_delete=models.CASCADE) - create_date = models.DateTimeField(auto_now_add=True) - amount = models.IntegerField() - discount = models.IntegerField(null=True, blank=True) - deadline = models.DateTimeField(null=True, blank=True) - desc = models.CharField(max_length=100, default='') - user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) - statusList = [ - ('unpaid', 'unpaid'), - ('paid', 'paid'), - ('cancell', 'cancell'), - ] - pay_status = models.CharField(max_length=10, choices=statusList, default='') - FactorTypeList = [ - ('Nasb', 'Nasb'), - ('Khadamat', 'Khadamat'), - ('Garranty', 'Garranty'), - ] - FactorType = models.CharField(max_length=10, choices=FactorTypeList, default='') - PayTypeList = [ - ('naghd', 'naghd'), - ('cardToCard', 'cardToCard'), - ('kartKhan', 'kartKhan'), - ('nesiye', 'nesiye'), - ('check', 'check'), - ] - PayType = models.CharField(max_length=30, choices=PayTypeList, default='') - - # فیلد جدید برای حذف نرم - is_active = models.BooleanField(default=True, null=True, blank=True) - - # بازنویسی متد حذف: ابطال فاکتور به جای حذف فیزیکی - def delete(self, *args, **kwargs): - # فاکتور باطل میشود اما رکوردهای انبار دستنخورده باقی میمانند! - self.is_active = False - self.pay_status = 'cancell' - self.save() - -class ProductInStore(models.Model): - class Meta: - permissions = [ - ("ViewProductInStore", "ViewProductInStore"), - ("EditProductInStore", "EditProductInStore"), - ("OnlyAnbar", "OnlyAnbar"), - ] - class MovementType(models.TextChoices): - SALE = 'SALE', 'فروش عادی' - WARRANTY = 'WARRANTY', 'گارانتی' - PROMOTION = 'PROMOTION', 'اشانتیون' - TRANSFER = 'TRANSFER', 'انتقال' - INITIAL = 'INITIAL', 'موجودی اولیه' - DIRECT_IN = 'DIRECT_IN', 'ورود دستی' - DIRECT_OUT = 'DIRECT_OUT', 'خروج دستی' - RETURN = 'RETURN', 'برگشت از فروش' - ERROR_CORRECTION = 'ERROR_CORRECTION', 'اصلاح خطای ثبت' - - StoreRoom = models.ForeignKey(StoreRoom, on_delete=models.CASCADE) - Product = models.ForeignKey(Product, on_delete=models.CASCADE) - s_in = models.IntegerField(default=0) - s_out = models.IntegerField(default=0) - current_stock_at_time = models.IntegerField(default=0, help_text="موجودی انبار در لحظه این تراکنش") - desc = models.CharField(max_length=50, default='') - year = models.IntegerField(default=1400) - createdDT = models.DateTimeField(auto_now_add=True) - changeDT = models.DateTimeField(auto_now=True) - - # تغییر بسیار مهم استراتژیک: تبدیل CASCADE به PROTECT - # هیچکس نمیتواند فاکتوری که کالا از انبار خارج کرده را از دیتابیس پاک کند! - factor = models.ForeignKey(Factor, on_delete=models.PROTECT, null=True, blank=True) - - movement_type = models.CharField( - max_length=20, - choices=MovementType.choices, - db_index=True, - null=True, - blank=True - ) - - def __str__(self): - return f"{self.Product.product_name} - In: {self.s_in} Out: {self.s_out}" - - # متدهای save و delete دقیقاً همان کدهای بینقص و پرسرعتی هستند که در پیام قبل تایید کردیم - def save(self, *args, **kwargs): - try: - self.s_in = int(self.s_in or 0) - self.s_out = int(self.s_out or 0) - except (ValueError, TypeError): - self.s_in, self.s_out = 0, 0 - - is_created = self.pk is None - - with transaction.atomic(): - qs_lock = ProductInStore.objects.filter(StoreRoom=self.StoreRoom, Product=self.Product) - if connection.features.has_select_for_update: - qs_lock = qs_lock.select_for_update() - list(qs_lock) - - if not is_created: - old_instance = ProductInStore.objects.get(pk=self.pk) - old_balance = old_instance.s_in - old_instance.s_out - new_balance = self.s_in - self.s_out - change_amount = new_balance - old_balance - description = self.desc or f"ویرایش تراکنش: {self.desc}" - else: - change_amount = self.s_in - self.s_out - description = self.desc or "ثبت تراکنش جدید انبار" - - super().save(*args, **kwargs) - - totals = ProductInStore.objects.filter(StoreRoom=self.StoreRoom, Product=self.Product).aggregate( - total_in=Sum('s_in'), - total_out=Sum('s_out') - ) - total_in = totals['total_in'] or 0 - total_out = totals['total_out'] or 0 - current_stock = total_in - total_out - - ProductInStore.objects.filter(pk=self.pk).update(current_stock_at_time=current_stock) - self.current_stock_at_time = current_stock - - ProductStockHistory.objects.create( - store_room=self.StoreRoom, - product=self.Product, - quantity_changed=change_amount, - current_stock=current_stock, - desc=description - ) - - def delete(self, *args, **kwargs): - store_room = self.StoreRoom - product = self.Product - change_amount = -(int(self.s_in or 0) - int(self.s_out or 0)) - description = f"حذف دستی تراکنش انبار: {self.desc}" - - with transaction.atomic(): - qs_lock = ProductInStore.objects.filter(StoreRoom=store_room, Product=product) - if connection.features.has_select_for_update: - qs_lock = qs_lock.select_for_update() - list(qs_lock) - - super().delete(*args, **kwargs) - - totals = ProductInStore.objects.filter(StoreRoom=store_room, Product=product).aggregate( - total_in=Sum('s_in'), - total_out=Sum('s_out') - ) - current_stock = (totals['total_in'] or 0) - (totals['total_out'] or 0) - - ProductStockHistory.objects.create( - store_room=store_room, - product=product, - quantity_changed=change_amount, - current_stock=current_stock, - desc=description - ) - - -class ProductStockHistory(models.Model): - store_room = models.ForeignKey(StoreRoom, on_delete=models.CASCADE, related_name='stock_histories') - product = models.ForeignKey(Product, on_delete=models.CASCADE, related_name='stock_histories') - quantity_changed = models.IntegerField(help_text="مقدار تغییر یافته (مثبت برای ورود، منفی برای خروج)") - current_stock = models.IntegerField(help_text="موجودی کل انبار در این لحظه") - created_at = models.DateTimeField(auto_now_add=True) - desc = models.CharField(max_length=255, blank=True, null=True) - - class Meta: - ordering = ['-created_at'] - - def __str__(self): - return f"{self.product.product_name} in {self.store_room.store_name} - Stock: {self.current_stock}" - - -class StoreTransferRequest(models.Model): - class Status(models.TextChoices): - PENDING = 'PENDING', 'در انتظار تایید انبار مقصد' - APPROVED = 'APPROVED', 'تایید شده و منتقل شده' - REJECTED = 'REJECTED', 'رد شده توسط انبار مقصد' - CANCELED = 'CANCELED', 'انصراف توسط مبدا' - - source_store = models.ForeignKey( - 'StoreRoom', - on_delete=models.PROTECT, - related_name='outgoing_transfers', - verbose_name="انبار مبدا" - ) - target_store = models.ForeignKey( - 'StoreRoom', - on_delete=models.PROTECT, - related_name='incoming_transfers', - verbose_name="انبار مقصد" - ) - product = models.ForeignKey( - 'Product', - on_delete=models.PROTECT, - verbose_name="کالا" - ) - quantity = models.PositiveIntegerField(verbose_name="تعداد انتقال") - - status = models.CharField( - max_length=15, - choices=Status.choices, - default=Status.PENDING, - db_index=True, - verbose_name="وضعیت" - ) - desc = models.CharField(max_length=500, blank=True, null=True, verbose_name="توضیحات درخواست") - rejection_reason = models.CharField(max_length=500, blank=True, null=True, verbose_name="دلیل رد درخواست") - - requester = models.ForeignKey( - User, - on_delete=models.PROTECT, - related_name='requested_transfers', - verbose_name="کاربر درخواستدهنده" - ) - approver = models.ForeignKey( - User, - on_delete=models.PROTECT, - null=True, - blank=True, - related_name='processed_transfers', - verbose_name="کاربر تعیینتکلیفکننده" - ) - - created_at = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name="زمان ثبت درخواست") - updated_at = models.DateTimeField(auto_now=True, verbose_name="زمان آخرین بهروزرسانی") - action_date = models.DateTimeField(null=True, blank=True, db_index=True, verbose_name="زمان تعیین تکلیف") - - out_transaction = models.ForeignKey( - 'ProductInStore', - on_delete=models.SET_NULL, - null=True, - blank=True, - related_name='transfer_out_ref', - verbose_name="سند خروج انبار مبدا" - ) - in_transaction = models.ForeignKey( - 'ProductInStore', - on_delete=models.SET_NULL, - null=True, - blank=True, - related_name='transfer_in_ref', - verbose_name="سند ورود انبار مقصد" - ) - - class Meta: - ordering = ['-created_at'] - - def __str__(self): - return f"[{self.get_status_display()}] {self.quantity} عدد {self.product.product_name} از {self.source_store.store_name} به {self.target_store.store_name}" - - def clean(self): - super().clean() - if self.source_store_id == self.target_store_id: - raise ValidationError("انبار مبدا و مقصد نمیتوانند یکسان باشند.") - if self.quantity and self.quantity <= 0: - raise ValidationError("تعداد انتقال باید بیشتر از صفر باشد.") - -class FactorIteam(models.Model): # پیشنهاد: در آینده املای نام این کلاس را به FactorItem اصلاح کنید - factor = models.ForeignKey(Factor, on_delete=models.CASCADE) - product = models.ForeignKey(Product, on_delete=models.CASCADE, null=True, blank=True) - product_name = models.CharField(max_length=200, default='') - num = models.IntegerField() - amount = models.IntegerField() - garantyEsh = models.CharField(max_length=100, default='', null=True, blank=True) - - -class VisitQueue(models.Model): - customer = models.ForeignKey(Customer, on_delete=models.CASCADE) - dateTime = models.DateTimeField() - statusList = [ - ('waiting', 'waiting'), - ('finish', 'finish'), - ('cancell', 'cancell'), - ] - status = models.CharField(max_length=10, choices=statusList, default='waiting') - user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) - GradeList = [ - ('3', '3'), - ('2', '2'), - ('1', '1'), - ] - grade = models.CharField(max_length=1, choices=GradeList) - grade_desc = models.CharField(max_length=200) - - -class ArticleType(models.Model): - name = models.CharField(max_length=50) - - -class Article(models.Model): - class Meta: - permissions = [ - ("ViewReportMali", "ViewReportMali") - ] - debit = models.IntegerField(null=True, blank=True) - credit = models.IntegerField(null=True, blank=True) - customer = models.ForeignKey(Customer, on_delete=models.CASCADE, null=True, blank=True) - factor = models.ForeignKey(Factor, on_delete=models.CASCADE, null=True, blank=True) - type = models.CharField(max_length=50, null=True, blank=True) - typePy = models.CharField(max_length=50, null=True, blank=True) - checkNum = models.IntegerField(null=True, blank=True) - nahvePardakht = models.CharField(max_length=50, null=True, blank=True) - sarresid = models.DateTimeField(null=True, blank=True) - payStatus = models.CharField(max_length=50, null=True, blank=True) - createdDT = models.DateTimeField(auto_now_add=True) - changeDT = models.DateTimeField(auto_now=True) - desc = models.CharField(max_length=200) - user = models.ForeignKey(userModel, on_delete=models.SET_NULL, null=True, blank=True) - - -class Action(models.Model): - actionType = models.CharField(max_length=50, null=True, blank=True) - forUser = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) - customer = models.ForeignKey(Customer, related_name='actionrlt', on_delete=models.CASCADE, null=True, blank=True) - createdDT = models.DateTimeField(auto_now_add=True) - changeDT = models.DateTimeField(auto_now=True) - actionDateTime = models.DateTimeField(null=True, blank=True) - finishDateTime = models.DateTimeField(null=True, blank=True) - desc = models.CharField(max_length=500, null=True, blank=True) - result = models.CharField(max_length=500, null=True, blank=True) - status = models.CharField(max_length=50, null=True, blank=True) - nazar = models.CharField(max_length=50, null=True, blank=True, default=None) - nextNazarDT = models.DateTimeField(null=True, blank=True, default=None) - nazarDT = models.DateTimeField(null=True, blank=True, default=None) - grade = models.IntegerField(null=True, blank=True, default=None) - - -class Sarresid(models.Model): - customer = models.ForeignKey('Customer', on_delete=models.CASCADE, null=True, blank=True) - createdDT = models.DateTimeField(auto_now_add=True) - changeDT = models.DateTimeField(auto_now=True) - price = models.IntegerField(null=False, blank=False) - payStatus = models.CharField(max_length=50, null=True, blank=True) - type = models.CharField(max_length=50, null=True, blank=True) - factor = models.ForeignKey('Factor', on_delete=models.CASCADE, null=True, blank=True) - sarresidDT = models.DateTimeField(null=True, blank=True) - user = models.ForeignKey(userModel, on_delete=models.SET_NULL, null=True, blank=True) - desc = models.TextField(null=True, blank=True) - - # ---------------- فیلدهای استاندارد و ایمنشده چک ---------------- - check_row_number = models.CharField( - max_length=50, - null=True, blank=True, - verbose_name="شماره ردیف چک" - ) - check_sayyad_id = models.CharField( - max_length=16, - validators=[ - RegexValidator(regex=r'^\d{16}$', message='شناسه صیادی باید دقیقاً ۱۶ رقم عدد باشد.') - ], - null=True, blank=True, - verbose_name="شناسه صیادی" - ) - check_owner_name = models.CharField( - max_length=100, - null=True, blank=True, - verbose_name="نام مالک چک" - ) - check_owner_phone = models.CharField( - max_length=11, - validators=[ - RegexValidator(regex=r'^\d{11}$', message='شماره تلفن باید ۱۱ رقم و فقط شامل اعداد باشد.') - ], - null=True, blank=True, - verbose_name="تلفن مالک چک" - ) - -class CacheTable(models.Model): - key = models.CharField(max_length=50, unique=True) - value = models.CharField(max_length=400) - - def __str__(self): - return f'{self.key} # {self.value}' \ No newline at end of file diff --git a/admin_panel/models/__init__.py b/admin_panel/models/__init__.py new file mode 100644 index 0000000..23ab797 --- /dev/null +++ b/admin_panel/models/__init__.py @@ -0,0 +1,19 @@ +""" +پکیج مدلهای admin_panel. + +این پکیج جایگزین فایل تکپارچهٔ models.py است و آن را به ماژولهای کوچکتر +دامنهای تقسیم میکند. همهٔ نامها اینجا re-export میشوند تا تمام +مصرفکنندههای فعلی (`from .models import *`, `from admin_panel.models import X`) +بدون هیچ تغییری کار کنند و app_label و مایگریشنها ثابت بمانند. + +نکته: عمداً __all__ تعریف نشده تا رفتار star-import دقیقاً مانند فایل قبلی باشد +(نامهایی مثل `models`, `User`, `Sum` نیز مثل قبل منتشر میشوند). +""" +from .users import * # noqa: F401,F403 +from .customers import * # noqa: F401,F403 +from .products import * # noqa: F401,F403 +from .store import * # noqa: F401,F403 +from .factors import * # noqa: F401,F403 +from .finance import * # noqa: F401,F403 +from .actions import * # noqa: F401,F403 +from .system import * # noqa: F401,F403 diff --git a/admin_panel/models/actions.py b/admin_panel/models/actions.py new file mode 100644 index 0000000..96daf69 --- /dev/null +++ b/admin_panel/models/actions.py @@ -0,0 +1,38 @@ +from django.db import models +from django.contrib.auth.models import User + + +class VisitQueue(models.Model): + customer = models.ForeignKey('Customer', on_delete=models.CASCADE) + dateTime = models.DateTimeField() + statusList = [ + ('waiting', 'waiting'), + ('finish', 'finish'), + ('cancell', 'cancell'), + ] + status = models.CharField(max_length=10, choices=statusList, default='waiting') + user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) + GradeList = [ + ('3', '3'), + ('2', '2'), + ('1', '1'), + ] + grade = models.CharField(max_length=1, choices=GradeList) + grade_desc = models.CharField(max_length=200) + + +class Action(models.Model): + actionType = models.CharField(max_length=50, null=True, blank=True) + forUser = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) + customer = models.ForeignKey('Customer', related_name='actionrlt', on_delete=models.CASCADE, null=True, blank=True) + createdDT = models.DateTimeField(auto_now_add=True) + changeDT = models.DateTimeField(auto_now=True) + actionDateTime = models.DateTimeField(null=True, blank=True) + finishDateTime = models.DateTimeField(null=True, blank=True) + desc = models.CharField(max_length=500, null=True, blank=True) + result = models.CharField(max_length=500, null=True, blank=True) + status = models.CharField(max_length=50, null=True, blank=True) + nazar = models.CharField(max_length=50, null=True, blank=True, default=None) + nextNazarDT = models.DateTimeField(null=True, blank=True, default=None) + nazarDT = models.DateTimeField(null=True, blank=True, default=None) + grade = models.IntegerField(null=True, blank=True, default=None) diff --git a/admin_panel/models/customers.py b/admin_panel/models/customers.py new file mode 100644 index 0000000..7cbe025 --- /dev/null +++ b/admin_panel/models/customers.py @@ -0,0 +1,42 @@ +from django.db import models + + +class Customer(models.Model): + class Meta: + permissions = [ + ("AddCustomer", "AddCustomer"), + ("DelCustomer", "DelCustomer"), + ("EditCustomer", "EditCustomer"), + ("ViewCustomer", "ViewCustomer") + ] + name_family = models.CharField(max_length=200) + address = models.CharField(max_length=200) + phone1 = models.CharField(max_length=20, default='') + phone2 = models.CharField(max_length=20, default='', null=True, blank=True) + phone3 = models.CharField(max_length=20, default='', null=True, blank=True) + idCode = models.CharField(max_length=20, default='', null=True, blank=True) + installDate = models.DateField(auto_now_add=True) + create_date = models.DateTimeField(auto_now_add=True) + last_bazdid_dt = models.DateTimeField(null=True, blank=True) + laghv_bazdid = models.BooleanField(null=True, blank=True, default=False) + + # فیلد جدید برای حذف نرم (بدون تداخل با دادههای قبلی) + is_active = models.BooleanField(default=True, null=True, blank=True, help_text="وضعیت فعالیت مشتری") + + def __str__(self): + return self.name_family + + # بازنویسی متد حذف: جلوگیری از فاجعه در دیتابیس + def delete(self, *args, **kwargs): + # به جای حذف فیزیکی که انبار و فاکتورها را نابود میکند، مشتری را غیرفعال میکنیم + self.is_active = False + self.save() + + +class PhoneNumber(models.Model): + customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name='phones') + title = models.CharField(max_length=50, default='تلفن', blank=True, null=True, help_text="عنوان شماره (مثل: موبایل پدر)") + phone_number = models.CharField(max_length=20) + + def __str__(self): + return f"{self.title}: {self.phone_number}" diff --git a/admin_panel/models/factors.py b/admin_panel/models/factors.py new file mode 100644 index 0000000..8df9cf5 --- /dev/null +++ b/admin_panel/models/factors.py @@ -0,0 +1,58 @@ +from django.db import models +from django.contrib.auth.models import User + + +class Factor(models.Model): + class Meta: + permissions = [ + ("ViewFactor", "ViewFactor"), + ("DelFactor", "DelFactor"), + ("EditFactor", "EditFactor"), + ("AddFactor", "AddFactor") + ] + customer = models.ForeignKey('Customer', on_delete=models.CASCADE) + create_date = models.DateTimeField(auto_now_add=True) + amount = models.IntegerField() + discount = models.IntegerField(null=True, blank=True) + deadline = models.DateTimeField(null=True, blank=True) + desc = models.CharField(max_length=100, default='') + user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) + statusList = [ + ('unpaid', 'unpaid'), + ('paid', 'paid'), + ('cancell', 'cancell'), + ] + pay_status = models.CharField(max_length=10, choices=statusList, default='') + FactorTypeList = [ + ('Nasb', 'Nasb'), + ('Khadamat', 'Khadamat'), + ('Garranty', 'Garranty'), + ] + FactorType = models.CharField(max_length=10, choices=FactorTypeList, default='') + PayTypeList = [ + ('naghd', 'naghd'), + ('cardToCard', 'cardToCard'), + ('kartKhan', 'kartKhan'), + ('nesiye', 'nesiye'), + ('check', 'check'), + ] + PayType = models.CharField(max_length=30, choices=PayTypeList, default='') + + # فیلد جدید برای حذف نرم + is_active = models.BooleanField(default=True, null=True, blank=True) + + # بازنویسی متد حذف: ابطال فاکتور به جای حذف فیزیکی + def delete(self, *args, **kwargs): + # فاکتور باطل میشود اما رکوردهای انبار دستنخورده باقی میمانند! + self.is_active = False + self.pay_status = 'cancell' + self.save() + + +class FactorIteam(models.Model): # پیشنهاد: در آینده املای نام این کلاس را به FactorItem اصلاح کنید + factor = models.ForeignKey(Factor, on_delete=models.CASCADE) + product = models.ForeignKey('Product', on_delete=models.CASCADE, null=True, blank=True) + product_name = models.CharField(max_length=200, default='') + num = models.IntegerField() + amount = models.IntegerField() + garantyEsh = models.CharField(max_length=100, default='', null=True, blank=True) diff --git a/admin_panel/models/finance.py b/admin_panel/models/finance.py new file mode 100644 index 0000000..4a889bd --- /dev/null +++ b/admin_panel/models/finance.py @@ -0,0 +1,71 @@ +from django.db import models +from django.contrib.auth import get_user_model +from django.core.validators import RegexValidator + +userModel = get_user_model() + + +class ArticleType(models.Model): + name = models.CharField(max_length=50) + + +class Article(models.Model): + class Meta: + permissions = [ + ("ViewReportMali", "ViewReportMali") + ] + debit = models.IntegerField(null=True, blank=True) + credit = models.IntegerField(null=True, blank=True) + customer = models.ForeignKey('Customer', on_delete=models.CASCADE, null=True, blank=True) + factor = models.ForeignKey('Factor', on_delete=models.CASCADE, null=True, blank=True) + type = models.CharField(max_length=50, null=True, blank=True) + typePy = models.CharField(max_length=50, null=True, blank=True) + checkNum = models.IntegerField(null=True, blank=True) + nahvePardakht = models.CharField(max_length=50, null=True, blank=True) + sarresid = models.DateTimeField(null=True, blank=True) + payStatus = models.CharField(max_length=50, null=True, blank=True) + createdDT = models.DateTimeField(auto_now_add=True) + changeDT = models.DateTimeField(auto_now=True) + desc = models.CharField(max_length=200) + user = models.ForeignKey(userModel, on_delete=models.SET_NULL, null=True, blank=True) + + +class Sarresid(models.Model): + customer = models.ForeignKey('Customer', on_delete=models.CASCADE, null=True, blank=True) + createdDT = models.DateTimeField(auto_now_add=True) + changeDT = models.DateTimeField(auto_now=True) + price = models.IntegerField(null=False, blank=False) + payStatus = models.CharField(max_length=50, null=True, blank=True) + type = models.CharField(max_length=50, null=True, blank=True) + factor = models.ForeignKey('Factor', on_delete=models.CASCADE, null=True, blank=True) + sarresidDT = models.DateTimeField(null=True, blank=True) + user = models.ForeignKey(userModel, on_delete=models.SET_NULL, null=True, blank=True) + desc = models.TextField(null=True, blank=True) + + # ---------------- فیلدهای استاندارد و ایمنشده چک ---------------- + check_row_number = models.CharField( + max_length=50, + null=True, blank=True, + verbose_name="شماره ردیف چک" + ) + check_sayyad_id = models.CharField( + max_length=16, + validators=[ + RegexValidator(regex=r'^\d{16}$', message='شناسه صیادی باید دقیقاً ۱۶ رقم عدد باشد.') + ], + null=True, blank=True, + verbose_name="شناسه صیادی" + ) + check_owner_name = models.CharField( + max_length=100, + null=True, blank=True, + verbose_name="نام مالک چک" + ) + check_owner_phone = models.CharField( + max_length=11, + validators=[ + RegexValidator(regex=r'^\d{11}$', message='شماره تلفن باید ۱۱ رقم و فقط شامل اعداد باشد.') + ], + null=True, blank=True, + verbose_name="تلفن مالک چک" + ) diff --git a/admin_panel/models/products.py b/admin_panel/models/products.py new file mode 100644 index 0000000..737ee8a --- /dev/null +++ b/admin_panel/models/products.py @@ -0,0 +1,148 @@ +from django.db import models, transaction, connection +from django.db.models import Sum + + +class ProductCategory(models.Model): + category_name = models.CharField(max_length=50) + + def __str__(self): + return self.category_name + + +class Product(models.Model): + class Meta: + permissions = [ + ("ViewProduct", "ViewProduct"), + ] + ProductCategory = models.ForeignKey(ProductCategory, on_delete=models.CASCADE) + product_name = models.CharField(max_length=50) + product_price = models.IntegerField() + year = models.IntegerField(default=1400) + createdDT = models.DateTimeField(auto_now_add=True) + changeDT = models.DateTimeField(auto_now=True) + + def __str__(self): + return self.product_name + + +class ProductInStore(models.Model): + class Meta: + permissions = [ + ("ViewProductInStore", "ViewProductInStore"), + ("EditProductInStore", "EditProductInStore"), + ("OnlyAnbar", "OnlyAnbar"), + ] + class MovementType(models.TextChoices): + SALE = 'SALE', 'فروش عادی' + WARRANTY = 'WARRANTY', 'گارانتی' + PROMOTION = 'PROMOTION', 'اشانتیون' + TRANSFER = 'TRANSFER', 'انتقال' + INITIAL = 'INITIAL', 'موجودی اولیه' + DIRECT_IN = 'DIRECT_IN', 'ورود دستی' + DIRECT_OUT = 'DIRECT_OUT', 'خروج دستی' + RETURN = 'RETURN', 'برگشت از فروش' + ERROR_CORRECTION = 'ERROR_CORRECTION', 'اصلاح خطای ثبت' + + StoreRoom = models.ForeignKey('StoreRoom', on_delete=models.CASCADE) + Product = models.ForeignKey(Product, on_delete=models.CASCADE) + s_in = models.IntegerField(default=0) + s_out = models.IntegerField(default=0) + current_stock_at_time = models.IntegerField(default=0, help_text="موجودی انبار در لحظه این تراکنش") + desc = models.CharField(max_length=50, default='') + year = models.IntegerField(default=1400) + createdDT = models.DateTimeField(auto_now_add=True) + changeDT = models.DateTimeField(auto_now=True) + + # تغییر بسیار مهم استراتژیک: تبدیل CASCADE به PROTECT + # هیچکس نمیتواند فاکتوری که کالا از انبار خارج کرده را از دیتابیس پاک کند! + factor = models.ForeignKey('Factor', on_delete=models.PROTECT, null=True, blank=True) + + movement_type = models.CharField( + max_length=20, + choices=MovementType.choices, + db_index=True, + null=True, + blank=True + ) + + def __str__(self): + return f"{self.Product.product_name} - In: {self.s_in} Out: {self.s_out}" + + # متدهای save و delete دقیقاً همان کدهای بینقص و پرسرعتی هستند که در پیام قبل تایید کردیم + def save(self, *args, **kwargs): + from .store import ProductStockHistory + + try: + self.s_in = int(self.s_in or 0) + self.s_out = int(self.s_out or 0) + except (ValueError, TypeError): + self.s_in, self.s_out = 0, 0 + + is_created = self.pk is None + + with transaction.atomic(): + qs_lock = ProductInStore.objects.filter(StoreRoom=self.StoreRoom, Product=self.Product) + if connection.features.has_select_for_update: + qs_lock = qs_lock.select_for_update() + list(qs_lock) + + if not is_created: + old_instance = ProductInStore.objects.get(pk=self.pk) + old_balance = old_instance.s_in - old_instance.s_out + new_balance = self.s_in - self.s_out + change_amount = new_balance - old_balance + description = self.desc or f"ویرایش تراکنش: {self.desc}" + else: + change_amount = self.s_in - self.s_out + description = self.desc or "ثبت تراکنش جدید انبار" + + super().save(*args, **kwargs) + + totals = ProductInStore.objects.filter(StoreRoom=self.StoreRoom, Product=self.Product).aggregate( + total_in=Sum('s_in'), + total_out=Sum('s_out') + ) + total_in = totals['total_in'] or 0 + total_out = totals['total_out'] or 0 + current_stock = total_in - total_out + + ProductInStore.objects.filter(pk=self.pk).update(current_stock_at_time=current_stock) + self.current_stock_at_time = current_stock + + ProductStockHistory.objects.create( + store_room=self.StoreRoom, + product=self.Product, + quantity_changed=change_amount, + current_stock=current_stock, + desc=description + ) + + def delete(self, *args, **kwargs): + from .store import ProductStockHistory + + store_room = self.StoreRoom + product = self.Product + change_amount = -(int(self.s_in or 0) - int(self.s_out or 0)) + description = f"حذف دستی تراکنش انبار: {self.desc}" + + with transaction.atomic(): + qs_lock = ProductInStore.objects.filter(StoreRoom=store_room, Product=product) + if connection.features.has_select_for_update: + qs_lock = qs_lock.select_for_update() + list(qs_lock) + + super().delete(*args, **kwargs) + + totals = ProductInStore.objects.filter(StoreRoom=store_room, Product=product).aggregate( + total_in=Sum('s_in'), + total_out=Sum('s_out') + ) + current_stock = (totals['total_in'] or 0) - (totals['total_out'] or 0) + + ProductStockHistory.objects.create( + store_room=store_room, + product=product, + quantity_changed=change_amount, + current_stock=current_stock, + desc=description + ) diff --git a/admin_panel/models/store.py b/admin_panel/models/store.py new file mode 100644 index 0000000..20e7bda --- /dev/null +++ b/admin_panel/models/store.py @@ -0,0 +1,148 @@ +from django.core.exceptions import ValidationError +from django.db import models +from django.contrib.auth.models import User + + +class StoreRoom(models.Model): + class Meta: + permissions = [ + ("ViewStore", "ViewStore"), + ("AddStore", "AddStore"), + ("EditStore", "EditStore"), + ("DelStore", "DelStore") + ] + store_name = models.CharField(max_length=200) + user = models.ManyToManyField(User, + blank=True, + verbose_name="دسترسی مشاهده انبار احتمالا", + help_text="از این برای دسترسی مشاهده آن اتبار استفاده می شود" + ) + owners = models.ManyToManyField( + User, + through='StoreRoomOwner', # کلید حل مشکل بدون شکستن کدهای قبلی + blank=True, + related_name="owned_storerooms", + verbose_name="مالکین انبار در فاکتور و موجودی و...", + help_text="این کاربران اگر فاکتور بزنند از این انبار کسر میگردد" + ) + + def __str__(self): + return self.store_name + + +class StoreRoomOwner(models.Model): + """ + این جدول واسط، پشت صحنه قرار میگیرد تا فقط قانون مالکیت را مدیریت کند. + کدهای دیگر پروژه اصلاً نیازی ندارند مستقیم با این جدول درگیر شوند. + """ + storeroom = models.ForeignKey(StoreRoom, on_delete=models.CASCADE) + + # OneToOneField تضمین میکند یک کاربر نمیتواند در این جدول (و هیچ انبار دیگری) تکرار شود + user = models.OneToOneField( + User, + on_delete=models.CASCADE, + error_messages={ + 'unique': 'این کاربر در حال حاضر مالک انبار دیگری است.' + } + ) + + +class ProductStockHistory(models.Model): + store_room = models.ForeignKey(StoreRoom, on_delete=models.CASCADE, related_name='stock_histories') + product = models.ForeignKey('Product', on_delete=models.CASCADE, related_name='stock_histories') + quantity_changed = models.IntegerField(help_text="مقدار تغییر یافته (مثبت برای ورود، منفی برای خروج)") + current_stock = models.IntegerField(help_text="موجودی کل انبار در این لحظه") + created_at = models.DateTimeField(auto_now_add=True) + desc = models.CharField(max_length=255, blank=True, null=True) + + class Meta: + ordering = ['-created_at'] + + def __str__(self): + return f"{self.product.product_name} in {self.store_room.store_name} - Stock: {self.current_stock}" + + +class StoreTransferRequest(models.Model): + class Status(models.TextChoices): + PENDING = 'PENDING', 'در انتظار تایید انبار مقصد' + APPROVED = 'APPROVED', 'تایید شده و منتقل شده' + REJECTED = 'REJECTED', 'رد شده توسط انبار مقصد' + CANCELED = 'CANCELED', 'انصراف توسط مبدا' + + source_store = models.ForeignKey( + 'StoreRoom', + on_delete=models.PROTECT, + related_name='outgoing_transfers', + verbose_name="انبار مبدا" + ) + target_store = models.ForeignKey( + 'StoreRoom', + on_delete=models.PROTECT, + related_name='incoming_transfers', + verbose_name="انبار مقصد" + ) + product = models.ForeignKey( + 'Product', + on_delete=models.PROTECT, + verbose_name="کالا" + ) + quantity = models.PositiveIntegerField(verbose_name="تعداد انتقال") + + status = models.CharField( + max_length=15, + choices=Status.choices, + default=Status.PENDING, + db_index=True, + verbose_name="وضعیت" + ) + desc = models.CharField(max_length=500, blank=True, null=True, verbose_name="توضیحات درخواست") + rejection_reason = models.CharField(max_length=500, blank=True, null=True, verbose_name="دلیل رد درخواست") + + requester = models.ForeignKey( + User, + on_delete=models.PROTECT, + related_name='requested_transfers', + verbose_name="کاربر درخواستدهنده" + ) + approver = models.ForeignKey( + User, + on_delete=models.PROTECT, + null=True, + blank=True, + related_name='processed_transfers', + verbose_name="کاربر تعیینتکلیفکننده" + ) + + created_at = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name="زمان ثبت درخواست") + updated_at = models.DateTimeField(auto_now=True, verbose_name="زمان آخرین بهروزرسانی") + action_date = models.DateTimeField(null=True, blank=True, db_index=True, verbose_name="زمان تعیین تکلیف") + + out_transaction = models.ForeignKey( + 'ProductInStore', + on_delete=models.SET_NULL, + null=True, + blank=True, + related_name='transfer_out_ref', + verbose_name="سند خروج انبار مبدا" + ) + in_transaction = models.ForeignKey( + 'ProductInStore', + on_delete=models.SET_NULL, + null=True, + blank=True, + related_name='transfer_in_ref', + verbose_name="سند ورود انبار مقصد" + ) + + class Meta: + ordering = ['-created_at'] + + def __str__(self): + return f"[{self.get_status_display()}] {self.quantity} عدد {self.product.product_name} از {self.source_store.store_name} به {self.target_store.store_name}" + + def clean(self): + super().clean() + if self.source_store_id == self.target_store_id: + raise ValidationError("انبار مبدا و مقصد نمیتوانند یکسان باشند.") + if self.quantity and self.quantity <= 0: + raise ValidationError("تعداد انتقال باید بیشتر از صفر باشد.") diff --git a/admin_panel/models/system.py b/admin_panel/models/system.py new file mode 100644 index 0000000..b1b8325 --- /dev/null +++ b/admin_panel/models/system.py @@ -0,0 +1,9 @@ +from django.db import models + + +class CacheTable(models.Model): + key = models.CharField(max_length=50, unique=True) + value = models.CharField(max_length=400) + + def __str__(self): + return f'{self.key} # {self.value}' diff --git a/admin_panel/models/users.py b/admin_panel/models/users.py new file mode 100644 index 0000000..b970578 --- /dev/null +++ b/admin_panel/models/users.py @@ -0,0 +1,18 @@ +from django.db import models +from django.contrib.auth.models import User + + +# اصلاح مدل کاربر: تبدیل به پروفایل برای حفظ امنیت و اتصال به سیستم پیشفرض جنگو +class UserProfile(models.Model): + UserTypeList = [ + ('admin', 'admin'), + ('office', 'office'), + ('operator', 'operator'), + ] + user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile') + user_type = models.CharField(max_length=10, choices=UserTypeList) + name_family = models.CharField(max_length=200) + create_date = models.DateTimeField(auto_now_add=True) + + def __str__(self): + return f"{self.user.username} ({self.user_type})" diff --git a/admin_panel/views.py b/admin_panel/views.py deleted file mode 100644 index 17f413b..0000000 --- a/admin_panel/views.py +++ /dev/null @@ -1,2896 +0,0 @@ -from django.shortcuts import redirect, render, get_object_or_404 -from django.urls.base import reverse -from django.urls import reverse # تکراری در کد اصلی شما بود، اما جهت عدم تغییر حفظ شد -from persiantools.jdatetime import JalaliDate -from persiantools import characters, digits -import datetime -from django.http import JsonResponse -from asgiref.sync import async_to_sync -import asyncio -import cv2 -import numpy as np -import ddddocr -import re -import base64 -from playwright.async_api import async_playwright -from django.contrib import messages -from django.views.decorators.http import require_POST -from django.utils import timezone # جدید -from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage -from django.core.exceptions import PermissionDenied, ValidationError # جدید -from django.views.decorators.csrf import csrf_exempt -from django.views.decorators.http import require_POST -from django.http import HttpResponse, HttpResponseRedirect, HttpResponseBadRequest # بخشBadRequest جدید -from django.db import transaction, connection -from django.db.models import Count, Sum, Q, Avg, F, Subquery, OuterRef, IntegerField, Exists, Min, Max, Case, When -from django.contrib.auth.models import Permission, User -from django.contrib.auth import authenticate, login, logout -from django.contrib.auth.decorators import login_required, permission_required -import os -import json # جدید -import logging # جدید -from .models import * -from .services import create_transfer_request, approve_transfer_request, reject_transfer_request, cancel_transfer_request - - -logger = logging.getLogger(__name__) - -class InventoryException(Exception): - """خطای اختصاصی برای کنترل موجودی انبار""" - pass - -def _safe_int(value, default=0): - """تابع امن برای تبدیل مقادیر دریافتی از جاوااسکریپت به عدد""" - if value is None: - return default - try: - clean_val = str(value).strip() - return int(clean_val) if clean_val else default - except (ValueError, TypeError): - return default - -def _parse_jalali_date(date_str): - """تبدیل امن تاریخ ارسالی از pDatepicker به میلادی""" - if not date_str or not str(date_str).strip(): - return None - try: - clean_date = digits.fa_to_en(digits.ar_to_fa(str(date_str).strip())) - y, m, d = map(int, clean_date.split("/")) - return JalaliDate(y, m, d).to_gregorian() - except Exception as e: - logger.warning(f"Error parsing Jalali date '{date_str}': {e}") - return None - -def _parse_timestamp(ts_value): - """تبدیل یونیکس تایماستمپهای ارسالی از جاوااسکریپت""" - if not ts_value: - return None - try: - # تبدیل میلیثانیه جاوااسکریپت به ثانیه پایتون - return datetime.datetime.fromtimestamp(int(ts_value) / 1000.0, tz=timezone.get_current_timezone()) - except (ValueError, TypeError): - return None - -def p_login(request): - username = request.POST.get('username', None ) - password = request.POST.get('password', None ) - if username != None and password != None: - if not request.user.is_authenticated: - user = authenticate(request, username=username, password=password) - if user is not None: - login(request, user) - return redirect("/panel/ActionList/"+str(request.user.id)+"/today") - else: - data = {'message': 'یوزنیم یا پسورد اشتباه است'} - return render(request, 'admin_panel/login.html', data) - else: - return redirect("/panel/") - else: - if request.user.is_authenticated: - return redirect("/panel/") - else: - return render(request, 'admin_panel/login.html') - #return logout(request) - -def p_logout(request): - logout(request) - return redirect("/panel/p_login/") - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def report(request): - - nahvePardakhat = [ - {'fa': 'تخفیف', 'en': 'تخفیف'}, - {'fa': 'نسیه', 'en': 'نسیه'}, - {'fa': 'چک', 'en': 'چک'}, - {'fa': 'کارتخوان', 'en': 'کارت خوان'}, - {'fa': 'کارت به کارت', 'en': 'کارت به کارت'}, - {'fa': 'نقدی', 'en': 'نقد'}, - ] - - userHa = User.objects.filter() - - if request.method == "GET": - nahvePardakht = request.GET.get("nahvepardakht", None) - user = request.GET.get("user", None) - azTarikh = request.GET.get("azTarikh", None) - taTarikh = request.GET.get("taTarikh", None) - pagenumber = request.GET.get("page", None) - - - if azTarikh and nahvePardakht: - - query_data = { - 'nahvePardakht': nahvePardakht, - 'user': user, - 'azTarikh': azTarikh, - 'taTarikh': taTarikh, - } - - azDateTime = datetime.datetime.fromtimestamp(int(azTarikh) / 1e3) - azDateTime = azDateTime.strftime('%Y-%m-%d 00:00:00') - - taDateTime = datetime.datetime.fromtimestamp(int(taTarikh) / 1e3) - taDateTime = taDateTime.strftime('%Y-%m-%d 23:59:59') - print("b") - user_a = User.objects.get(username=user) - print(user_a) - - if nahvePardakht == "نسیه" or nahvePardakht == "چک": - if nahvePardakht == 'نسیه': - typeSarresid = 'nesiye' - elif nahvePardakht == 'چک': - typeSarresid = 'check' - - - sumSarresidha = Sarresid.objects.filter( - type=typeSarresid, - user=user_a, - createdDT__lte=taDateTime, - createdDT__gte=azDateTime, - payStatus='false' - ).aggregate(Sum('price')) - - sarresidha = Sarresid.objects.filter( - type=typeSarresid, - user=user_a, - createdDT__lte=taDateTime, - createdDT__gte=azDateTime, - payStatus='false' - ) - - paginator = Paginator(sarresidha, 25) # Show 25 contacts per page. - page_number = request.GET.get('page', None) - all_sarresidha = paginator.get_page(pagenumber) - data = {'sarresidha': all_sarresidha ,'sumSarresidha': sumSarresidha, 'nahvePardakhat': nahvePardakhat, 'userHa':userHa, 'query_data': query_data} - return render(request, 'admin_panel/reportCheckNesiye.html', data) - - else: - - sumAricles = Article.objects.filter( - nahvePardakht=nahvePardakht, - user=user_a, - createdDT__lte=taDateTime, - createdDT__gte=azDateTime, - ).aggregate(Sum('credit')) - - aricles1 = Article.objects.filter( - nahvePardakht=nahvePardakht, - user=user_a, - createdDT__lte=taDateTime, - createdDT__gte=azDateTime, - ) - - paginator = Paginator(aricles1, 25) # Show 25 contacts per page. - page_number = request.GET.get('page', None) - all_aricles = paginator.get_page(page_number) - data = {'aricles': all_aricles,'sum_credit': sumAricles, 'nahvePardakhat': nahvePardakhat, 'userHa':userHa, 'query_data': query_data} - return render(request, 'admin_panel/report.html', data) - else: - data = {'nahvePardakhat': nahvePardakhat, 'userHa':userHa} - return render(request, 'admin_panel/report.html', data) - - - data = {'nahvePardakhat': nahvePardakhat, 'userHa':userHa} - return render(request, 'admin_panel/report.html', data) - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def report_debtors_no_vosol(request): - now = datetime.datetime.now() - - # --- ۱. دریافت و اعتبارسنجی پارامترهای فیلتر از فرانتاند --- - try: - days_threshold = int(request.GET.get('days', 20)) - if days_threshold < 0: - days_threshold = 20 - except ValueError: - days_threshold = 20 - - filter_type = request.GET.get('filter_type', 'all') # all, never, expired - sort_field = request.GET.get('sort', 'amount') # amount, oldest_date, last_action - sort_dir = request.GET.get('dir', 'desc') # asc, desc - - threshold_date = now - datetime.timedelta(days=days_threshold) - - # --- ۲. ساخت Subquery های فوقسریع و ایمن --- - sq_debit = Article.objects.filter(customer=OuterRef('pk')).values('customer').annotate(s=Sum('debit')).values('s') - sq_credit = Article.objects.filter(customer=OuterRef('pk')).values('customer').annotate(s=Sum('credit')).values('s') - - sq_overdue_amt = Sarresid.objects.filter( - customer=OuterRef('pk'), payStatus='false', sarresidDT__lte=now - ).values('customer').annotate(s=Sum('price')).values('s') - - sq_oldest_date = Sarresid.objects.filter( - customer=OuterRef('pk'), payStatus='false', sarresidDT__lte=now - ).values('customer').annotate(min_dt=Min('sarresidDT')).values('min_dt') - - sq_overdue_count = Sarresid.objects.filter( - customer=OuterRef('pk'), payStatus='false', sarresidDT__lte=now - ).values('customer').annotate(c=Count('id')).values('c') - - # استخراج آخرین سابقه اکشن وصول - latest_vosol_qs = Action.objects.filter( - customer=OuterRef('pk'), actionType='vosol' - ).order_by('-createdDT') - - # --- ۳. ساخت کوئری پایه (فقط مشتریان فعال و دارای معوقه) --- - base_qs = Customer.objects.filter(is_active=True).annotate( - t_debit=Coalesce(Subquery(sq_debit, output_field=IntegerField()), Value(0)), - t_credit=Coalesce(Subquery(sq_credit, output_field=IntegerField()), Value(0)), - overdue_amount=Coalesce(Subquery(sq_overdue_amt, output_field=IntegerField()), Value(0)), - overdue_count=Coalesce(Subquery(sq_overdue_count, output_field=IntegerField()), Value(0)), - oldest_overdue_date=Subquery(sq_oldest_date), - last_vosol_date=Subquery(latest_vosol_qs.values('createdDT')[:1]), - last_vosol_desc=Subquery(latest_vosol_qs.values('desc')[:1]) - ).annotate( - net_debt=F('t_debit') - F('t_credit') - ).filter( - overdue_amount__gt=0 # شرط اساسی: فقط کسانی که معوقه سررسید گذشته دارند - ) - - # استخراج مشتریانی که نیازمند پیگیری هستند (هرگز پیگیری نشدهاند یا موعد پیگیریشان گذشته است) - action_needed_qs = base_qs.filter( - Q(last_vosol_date__isnull=True) | Q(last_vosol_date__lt=threshold_date) - ) - - # --- ۴. محاسبه آمار دقیق (بدون خطا) برای داشبورد --- - # استفاده از Case/When برای جلوگیری کامل از خطای None در Aggregate - stats = action_needed_qs.aggregate( - never_count=Coalesce(Sum(Case(When(last_vosol_date__isnull=True, then=1), default=Value(0), output_field=IntegerField())), Value(0)), - never_amount=Coalesce(Sum(Case(When(last_vosol_date__isnull=True, then=F('overdue_amount')), default=Value(0), output_field=IntegerField())), Value(0)), - expired_count=Coalesce(Sum(Case(When(last_vosol_date__isnull=False, then=1), default=Value(0), output_field=IntegerField())), Value(0)), - expired_amount=Coalesce(Sum(Case(When(last_vosol_date__isnull=False, then=F('overdue_amount')), default=Value(0), output_field=IntegerField())), Value(0)), - ) - - # --- ۵. اعمال فیلتر کشویی (Dropdown) --- - if filter_type == 'never': - final_qs = action_needed_qs.filter(last_vosol_date__isnull=True) - elif filter_type == 'expired': - final_qs = action_needed_qs.filter(last_vosol_date__isnull=False) - else: # all - final_qs = action_needed_qs - - # --- ۶. اعمال مرتبسازی (Sorting) پویا --- - if sort_field == 'amount': - order_expr = F('overdue_amount').desc() if sort_dir == 'desc' else F('overdue_amount').asc() - elif sort_field == 'oldest_date': - order_expr = F('oldest_overdue_date').desc(nulls_last=True) if sort_dir == 'desc' else F('oldest_overdue_date').asc(nulls_last=True) - elif sort_field == 'last_action': - order_expr = F('last_vosol_date').desc(nulls_last=True) if sort_dir == 'desc' else F('last_vosol_date').asc(nulls_first=True) - else: - order_expr = F('overdue_amount').desc() - - final_qs = final_qs.order_by(order_expr) - - # --- ۷. صفحهبندی ایمن --- - paginator = Paginator(final_qs, 50) - page_number = request.GET.get('page', 1) - try: - page_obj = paginator.page(page_number) - except (PageNotAnInteger, EmptyPage): - page_obj = paginator.page(1) - - context = { - 'page_obj': page_obj, - 'page_name': 'debtors_no_vosol', - 'stats': stats, - # پارامترهای کنترل پنل - 'current_days': days_threshold, - 'current_filter': filter_type, - 'current_sort': sort_field, - 'current_dir': sort_dir, - } - - return render(request, 'admin_panel/report_debtors_no_vosol.html', context) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def inventory_movements_report(request): - """ - گزارش جامع گردش و خروج کالا از انبار به همراه فیلتر متنی نام کالا، - نوع تراکنش، کاربر، انبار و بازه زمانی شمسی. - """ - all_users = User.objects.all().order_by('first_name') - all_stores = StoreRoom.objects.all() - movement_choices = ProductInStore.MovementType.choices - - # دریافت پارامترهای فیلتر از فرانتاند - selected_type = request.GET.get('movement_type', '') - selected_user = request.GET.get('user_id', '') - selected_store = request.GET.get('store_id', '') - selected_product_name = request.GET.get('product_name', '').strip() # فیلد جدید جستجوی نام کالا - az_tarikh = request.GET.get('azTarikh', '') - ta_tarikh = request.GET.get('taTarikh', '') - - # ۱. کوئری پایه بهینه - movements_list = ProductInStore.objects.select_related( - 'Product', 'StoreRoom', 'factor__customer', 'factor__user' - ).filter(year=1400).order_by('-createdDT') - - # ۲. اعمال فیلترهای پویا - if selected_type: - movements_list = movements_list.filter(movement_type=selected_type) - - if selected_user: - movements_list = movements_list.filter(factor__user__id=_safe_int(selected_user)) - - if selected_store: - movements_list = movements_list.filter(StoreRoom__id=_safe_int(selected_store)) - - if selected_product_name: - # فیلتر متنی حساس نبودن به حروف بزرگ و کوچک (Case-Insensitive Contains) - movements_list = movements_list.filter(Product__product_name__icontains=selected_product_name) - - # ۳. پردازش بازه زمانی - if az_tarikh: - try: - az_dt = datetime.datetime.fromtimestamp(int(az_tarikh) / 1000.0) - movements_list = movements_list.filter(createdDT__gte=az_dt.strftime('%Y-%m-%d 00:00:00')) - except (ValueError, TypeError): - pass - - if ta_tarikh: - try: - ta_dt = datetime.datetime.fromtimestamp(int(ta_tarikh) / 1000.0) - movements_list = movements_list.filter(createdDT__lte=ta_dt.strftime('%Y-%m-%d 23:59:59')) - except (ValueError, TypeError): - pass - - # ۴. محاسبه آماری سریع دیتابیس روی نتایج فیلتر شده - summary_stats = movements_list.aggregate( - total_out_qty=Sum('s_out'), - total_in_qty=Sum('s_in') - ) - - # ۵. صفحهبندی نتایج - paginator = Paginator(movements_list, 50) - page_number = request.GET.get('page') - page_obj = paginator.get_page(page_number) - - context = { - 'page_obj': page_obj, - 'all_users': all_users, - 'all_stores': all_stores, - 'movement_choices': movement_choices, - 'summary_stats': summary_stats, - 'filters': { - 'movement_type': selected_type, - 'user_id': _safe_int(selected_user) if selected_user else '', - 'store_id': _safe_int(selected_store) if selected_store else '', - 'product_name': selected_product_name, # ارسال فیلد جدید به قالب برای حفظ مقدار ورودی - 'azTarikh': az_tarikh, - 'taTarikh': ta_tarikh, - } - } - - return render(request, 'admin_panel/report_inventory_movements.html', context) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def financial_dashboard(request): - """ - داشبورد هوش مالی و مدیریت نقدینگی (BI Dashboard) - مجهز به هسته حسابرسی ۳۶۰ درجه برای کشف تمامی مغایرتها (بدهی رو هوا، چکهای الکی، پیشدریافتها) - """ - az_tarikh = request.GET.get('azTarikh', '') - ta_tarikh = request.GET.get('taTarikh', '') - - az_dt = None - ta_dt = None - - if az_tarikh: - try: - az_dt = datetime.datetime.fromtimestamp(int(az_tarikh) / 1000.0) - az_dt = az_dt.replace(hour=0, minute=0, second=0) - except (ValueError, TypeError): - pass - - if ta_tarikh: - try: - ta_dt = datetime.datetime.fromtimestamp(int(ta_tarikh) / 1000.0) - ta_dt = ta_dt.replace(hour=23, minute=59, second=59) - except (ValueError, TypeError): - pass - - anchor_dt = ta_dt if ta_dt else datetime.datetime.now() - - # ========================================================================= - # محاسبه روند ۱۲ ماهه غلتان (TTM) - # ========================================================================= - jalali_months = ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'] - trend_labels = [] - trend_data = [] - - anchor_jd = JalaliDate(anchor_dt.date()) - curr_y = int(anchor_jd.year) - curr_m = int(anchor_jd.month) - - for _ in range(12): - if curr_m < 1: - curr_m = 12 - curr_y -= 1 - - label = f"{jalali_months[curr_m - 1]} {curr_y}" - trend_labels.insert(0, label) - - last_day = JalaliDate.days_in_month(curr_m, curr_y) - end_of_month_jd = JalaliDate(curr_y, curr_m, last_day) - end_of_month_gd = end_of_month_jd.to_gregorian() - end_dt_str = end_of_month_gd.strftime('%Y-%m-%d 23:59:59') - - totals = Article.objects.filter(createdDT__lte=end_dt_str).aggregate( - t_deb=Sum('debit'), - t_cred=Sum('credit') - ) - t_deb = totals['t_deb'] or 0 - t_cred = totals['t_cred'] or 0 - month_total_debt = t_deb - t_cred - - trend_data.insert(0, month_total_debt) - curr_m -= 1 - - # ========================================================================= - # فیلترهای پایه (دادههای زماندار و داشبورد) - # ========================================================================= - sarresid_qs = Sarresid.objects.filter(factor__productinstore__year=1400).distinct() - factor_qs = Factor.objects.filter(productinstore__year=1400, is_active=True).distinct() - article_qs = Article.objects.filter(factor__productinstore__year=1400).distinct() - store_qs = ProductInStore.objects.filter(year=1400) - - if az_dt: - sarresid_qs = sarresid_qs.filter(createdDT__gte=az_dt) - factor_qs = factor_qs.filter(create_date__gte=az_dt) - article_qs = article_qs.filter(createdDT__gte=az_dt) - store_qs = store_qs.filter(createdDT__gte=az_dt) - - if ta_dt: - sarresid_qs = sarresid_qs.filter(createdDT__lte=ta_dt) - factor_qs = factor_qs.filter(create_date__lte=ta_dt) - article_qs = article_qs.filter(createdDT__lte=ta_dt) - store_qs = store_qs.filter(createdDT__lte=ta_dt) - - # کارتهای شاخص عملکرد عمومی - total_unpaid_debts = sarresid_qs.filter(payStatus="false").aggregate(Sum('price'))['price__sum'] or 0 - total_sales_period = factor_qs.aggregate(Sum('amount'))['amount__sum'] or 0 - overdue_checks_count = sarresid_qs.filter(payStatus="false", type="check", sarresidDT__lte=anchor_dt).count() - - # ========================================================================= - # 👑 هسته حسابرسی ۳۶۰ درجه (برگرفته از Ghost Hunter / Deep Audit) - # ========================================================================= - - # الف) تراز کل ریاضی سیستم - g_art = Article.objects.aggregate(d=Sum('debit'), c=Sum('credit')) - global_mande = (g_art['d'] or 0) - (g_art['c'] or 0) - g_sar = Sarresid.objects.filter(payStatus="false").aggregate(s=Sum('price'))['s'] or 0 - global_diff = global_mande - g_sar - - # ب) محاسبات Subquery فوقسریع برای تمام مشتریان - sq_debit = Article.objects.filter(customer=OuterRef('pk')).values('customer').annotate(s=Sum('debit')).values('s') - sq_credit = Article.objects.filter(customer=OuterRef('pk')).values('customer').annotate(s=Sum('credit')).values('s') - sq_sarresid = Sarresid.objects.filter(customer=OuterRef('pk'), payStatus="false").values('customer').annotate(s=Sum('price')).values('s') - - base_customers = Customer.objects.filter(is_active=True).annotate( - t_debit=Coalesce(Subquery(sq_debit, output_field=IntegerField()), 0), - t_credit=Coalesce(Subquery(sq_credit, output_field=IntegerField()), 0), - t_sarresid=Coalesce(Subquery(sq_sarresid, output_field=IntegerField()), 0), - ).annotate( - net_debt=F('t_debit') - F('t_credit') # تراز نهایی - ).annotate( - diff=F('net_debt') - F('t_sarresid') # میزان کسر/اضافه سند - ) - - # 🔴 گروه 1: بدهکارانی که کسر سند/چک دارند (بدهی خطرناک روی هوا) [diff > 0] - group1_qs = base_customers.filter(diff__gt=0).order_by('-diff') - group1_count = group1_qs.count() - group1_total = sum(group1_qs.values_list('diff', flat=True)) or 0 - group1_sample = group1_qs[:20] - - # 🟡 گروه 2: چک پاسنشده در سیستم بیشتر از بدهی است (خطای ثبتی اپراتور) [diff < 0 AND net_debt >= 0] - group2_qs = base_customers.filter(diff__lt=0, net_debt__gte=0).annotate( - fake_amount=F('t_sarresid') - F('net_debt') - ).order_by('-fake_amount') - group2_count = group2_qs.count() - group2_total = sum(group2_qs.values_list('fake_amount', flat=True)) or 0 - group2_sample = group2_qs[:20] - - # 🟢 گروه 3: پیشدریافت خالص (بستانکار است و هیچ چکی ندارد) [diff < 0 AND net_debt < 0 AND t_sarresid = 0] - group3_qs = base_customers.filter(diff__lt=0, net_debt__lt=0, t_sarresid=0).order_by('net_debt') # net_debt منفی است - group3_count = group3_qs.count() - group3_total = sum(group3_qs.values_list('net_debt', flat=True)) or 0 - group3_sample = group3_qs[:20] - - # 🟣 گروه 4: عجیبترین حالت! مشتری بستانکار است، اما چک پاسنشده هم در سیستم دارد! [diff < 0 AND net_debt < 0 AND t_sarresid > 0] - group4_qs = base_customers.filter(diff__lt=0, net_debt__lt=0, t_sarresid__gt=0).order_by('net_debt') - group4_count = group4_qs.count() - group4_total = sum(group4_qs.values_list('diff', flat=True)) or 0 - group4_sample = group4_qs[:20] - - # ========================================================================= - # نمودارها و آمار تکمیلی داشبورد - # ========================================================================= - debt_future = sarresid_qs.filter(payStatus="false", sarresidDT__gt=anchor_dt).aggregate(Sum('price'))['price__sum'] or 0 - dt_30_days_ago = anchor_dt - datetime.timedelta(days=30) - debt_0_30 = sarresid_qs.filter(payStatus="false", sarresidDT__lte=anchor_dt, sarresidDT__gte=dt_30_days_ago).aggregate(Sum('price'))['price__sum'] or 0 - dt_90_days_ago = anchor_dt - datetime.timedelta(days=90) - debt_30_90 = sarresid_qs.filter(payStatus="false", sarresidDT__lt=dt_30_days_ago, sarresidDT__gte=dt_90_days_ago).aggregate(Sum('price'))['price__sum'] or 0 - debt_above_90 = sarresid_qs.filter(payStatus="false", sarresidDT__lt=dt_90_days_ago).aggregate(Sum('price'))['price__sum'] or 0 - - payment_articles = article_qs.filter(credit__gt=0).values('nahvePardakht').annotate(total_amount=Sum('credit')).order_by('-total_amount') - pay_labels = [] - pay_data = [] - for item in payment_articles: - label = item['nahvePardakht'] or 'سایر/نامشخص' - pay_labels.append(label) - pay_data.append(item['total_amount']) - - store_leaks = store_qs.filter( - movement_type__in=[ProductInStore.MovementType.WARRANTY, ProductInStore.MovementType.PROMOTION] - ).values('movement_type').annotate(total_qty=Sum('s_out')) - - leak_data = {'WARRANTY': 0, 'PROMOTION': 0} - for leak in store_leaks: - leak_data[leak['movement_type']] = leak['total_qty'] - - context = { - 'kpi_total_unpaid': total_unpaid_debts, - 'kpi_total_sales': total_sales_period, - 'kpi_overdue_checks': overdue_checks_count, - - # آمار کلان ریاضیاتی - 'global_mande': global_mande, - 'g_sar': g_sar, - 'global_diff': global_diff, - - # متغیرهای ۴ گروه حسابرسی - 'group1_count': group1_count, 'group1_total': group1_total, 'group1_sample': group1_sample, - 'group2_count': group2_count, 'group2_total': group2_total, 'group2_sample': group2_sample, - 'group3_count': group3_count, 'group3_total': group3_total, 'group3_sample': group3_sample, - 'group4_count': group4_count, 'group4_total': group4_total, 'group4_sample': group4_sample, - - 'trend_labels': trend_labels, - 'trend_data': trend_data, - - 'aging_data': [debt_future, debt_0_30, debt_30_90, debt_above_90], - 'pay_labels': pay_labels, - 'pay_data': pay_data, - 'warranty_qty': leak_data['WARRANTY'], - 'promotion_qty': leak_data['PROMOTION'], - - 'filters': { - 'azTarikh': az_tarikh, - 'taTarikh': ta_tarikh, - } - } - - return render(request, 'admin_panel/financial_dashboard.html', context) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def bedehi(request): - try: - debit = Article.objects.filter().aggregate(Sum('debit'))['debit__sum'] - credit = Article.objects.filter().aggregate(Sum('credit'))['credit__sum'] - mandehesabCs = debit - credit - articls = Article.objects.filter().order_by('-createdDT') - articlsPaginator = Paginator(articls, 10) - pageNumber = request.GET.get("page", 1) - articl_objs = articlsPaginator.get_page(pageNumber) - - except: - articls =None - mandehesabCs = 0 - - data = {'articls': articl_objs, 'mandehesabKP': mandehesabCs} - return render(request, 'admin_panel/bedehi.html', data) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def hesabdari(request): - page_name = 'sarresidShodeha' - anchor_dt = datetime.datetime.now() - - # تعریف محدودههای زمانی ماتریس ریسک (سن مطالبات) - dt_30_days_ago = anchor_dt - datetime.timedelta(days=30) - dt_90_days_ago = anchor_dt - datetime.timedelta(days=90) - - # کوئری پایه: تمام سررسیدهای پرداختنشده که از موعد آنها گذشته است - base_qs = Sarresid.objects.filter(payStatus="false", sarresidDT__lte=anchor_dt) - - # محاسبه پرسرعت مجموع مبالغ در هر دسته (توسط موتور دیتابیس) - matrix_totals = base_qs.aggregate( - minor_delay=Sum('price', filter=Q(sarresidDT__gte=dt_30_days_ago)), - high_risk=Sum('price', filter=Q(sarresidDT__lt=dt_30_days_ago, sarresidDT__gte=dt_90_days_ago)), - critical=Sum('price', filter=Q(sarresidDT__lt=dt_90_days_ago)), - total_sum=Sum('price') - ) - - # دریافت فیلتر انتخابی کاربر از URL - risk_filter = request.GET.get('risk_level', 'all') - - # اعمال فیلتر روی لیست نمایش داده شده - if risk_filter == 'minor': - filtered_qs = base_qs.filter(sarresidDT__gte=dt_30_days_ago) - elif risk_filter == 'high': - filtered_qs = base_qs.filter(sarresidDT__lt=dt_30_days_ago, sarresidDT__gte=dt_90_days_ago) - elif risk_filter == 'critical': - filtered_qs = base_qs.filter(sarresidDT__lt=dt_90_days_ago) - else: - filtered_qs = base_qs - - # مرتبسازی: قدیمیترینها (خطرناکترینها) در صدر جدول قرار میگیرند - filtered_qs = filtered_qs.order_by('-sarresidDT') - - page_number = request.GET.get('page', 1) - paginator = Paginator(filtered_qs, per_page=50) - all_sarresid_pgi = paginator.get_page(page_number) - - data = { - 'page_name': page_name, - 'dateNow': anchor_dt.strftime('%Y-%m-%d %H:%M:%S'), - 'all_sarresid': all_sarresid_pgi, - 'current_filter': risk_filter, - # متغیرهای ماتریس ریسک - 'sum_sarresid': matrix_totals['total_sum'] or 0, - 'minor_sum': matrix_totals['minor_delay'] or 0, - 'high_sum': matrix_totals['high_risk'] or 0, - 'critical_sum': matrix_totals['critical'] or 0, - } - - return render(request, 'admin_panel/hesabdari.html', data) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def hesabdari_checkPass(request): - - page_name = 'checkPass' - - dateNow = datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') - all_sarresid = Sarresid.objects.filter(payStatus="true", type='check').order_by('-sarresidDT') - - page_number = request.GET.get('page', None) - paginator = Paginator(all_sarresid, per_page=50) - - all_sarresid_pgi = paginator.get_page(page_number) - - #paginator = Paginator(all_sarresid, per_page=200) - - data = {'all_sarresid': all_sarresid_pgi, "dateNow":dateNow, "page_name":page_name} - return render(request, 'admin_panel/hesabdari.html', data) - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def hesabdari_checkPassFail(request): - - page_name = 'checkPassFaild' - - dateNow = datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') - all_sarresid = Sarresid.objects.filter(payStatus="false", type='check').order_by('sarresidDT') - - count_check_passfail = all_sarresid.count() - - sum_check_passfail = all_sarresid.aggregate(Sum('price'))['price__sum'] - - page_number = request.GET.get('page', None) - paginator = Paginator(all_sarresid, per_page=50) - - all_sarresid_pgi = paginator.get_page(page_number) - - #paginator = Paginator(all_sarresid, per_page=200) - - data = {'all_sarresid': all_sarresid_pgi, 'sum_check_passfail':sum_check_passfail, 'count_check_passfail': count_check_passfail, "dateNow":dateNow, "page_name":page_name} - return render(request, 'admin_panel/hesabdari.html', data) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def hesabdari_residnashone(request): - - page_name = 'sarresidNaShodeha' - - dateNow = datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') - all_sarresid = Sarresid.objects.filter(payStatus="false", sarresidDT__gte=dateNow).order_by('sarresidDT') - - sarresidNashode = all_sarresid.aggregate(Sum('price'))['price__sum'] - page_number = request.GET.get('page', None) - paginator = Paginator(all_sarresid, per_page=50) - - all_sarresid_pgi = paginator.get_page(page_number) - - #paginator = Paginator(all_sarresid, per_page=200) - - data = {'sarresidNashode': sarresidNashode,'all_sarresid': all_sarresid_pgi, "dateNow":dateNow, "page_name":page_name} - return render(request, 'admin_panel/hesabdari.html', data) - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def bedehiKhadamat(request): - #bedehiKhadamat - try: - debit = Article.objects.filter(typePy='khadamat').aggregate(Sum('debit'))['debit__sum'] - credit = Article.objects.filter(typePy='khadamat').aggregate(Sum('credit'))['credit__sum'] - mandehesabCs = debit - credit - articls = Article.objects.filter(typePy='khadamat').order_by('-createdDT')[:100] - except: - articls =None - mandehesabCs = 0 - - data = {'articls': articls, 'mandehesabKP': mandehesabCs} - return render(request, 'admin_panel/bedehi.html', data) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def bedehiNasb(request): - try: - debit = Article.objects.filter(typePy='nasb').aggregate(Sum('debit'))['debit__sum'] - credit = Article.objects.filter(typePy='nasb').aggregate(Sum('credit'))['credit__sum'] - mandehesabCs = debit - credit - articls = Article.objects.filter(typePy='nasb').order_by('-createdDT')[:100] - except: - articls =None - mandehesabCs = 0 - - data = {'articls': articls, 'mandehesabKP': mandehesabCs} - return render(request, 'admin_panel/bedehi.html', data) - -@csrf_exempt -@login_required(login_url='/panel/p_login/') -def customers(request): - searchVal = request.GET.get('searchVal', '') - searchOn = request.GET.get('searchOn', '') - searchStatus = True - full_path = request.get_full_path() - - if searchOn == 'code': - all_customers = Customer.objects.filter(idCode__contains=searchVal).order_by('-create_date') - elif searchOn == 'phone': - all_customers = Customer.objects.filter(Q(phone1__contains=searchVal) | Q(phone2__contains=searchVal) | Q(phone3__contains=searchVal) ).order_by('-create_date') - elif searchOn == 'name': - all_customers = Customer.objects.filter(name_family__contains=searchVal).order_by('-create_date') - elif searchOn == 'address': - all_customers = Customer.objects.filter(address__contains=searchVal).order_by('-create_date') - elif searchOn == 'laghv': - all_customers = Customer.objects.filter(laghv_bazdid=True).order_by('-create_date') - else: - searchStatus = False - all_customers = Customer.objects.filter(is_active=True).order_by('-create_date') - - paginator = Paginator(all_customers, 25) # Show 25 contacts per page. - page_number = request.GET.get('page', None) - all_customers = paginator.get_page(page_number) - - - data = {'customersD': all_customers, 'searchStatus': searchStatus, 'full_path': full_path, 'searchVal': searchVal, 'searchOn':searchOn} - return render(request, 'admin_panel/customers.html', data) - - -@login_required(login_url='/panel/p_login/') -def customersSearch(request, searchVal,searchOn): - searchStatus = True - - if searchOn == 'code': - all_customers = Customer.objects.filter(idCode__contains=searchVal).order_by('-create_date') - elif searchOn == 'phone': - all_customers = Customer.objects.filter(phone1__contains=searchVal).order_by('-create_date') - elif searchOn == 'name': - all_customers = Customer.objects.filter(name_family__contains=searchVal).order_by('-create_date') - elif searchOn == 'address': - all_customers = Customer.objects.filter(address__contains=searchVal).order_by('-create_date') - else: - searchStatus = False - all_customers = Customer.objects.all().order_by('-create_date') - - paginator = Paginator(all_customers, 25) # Show 25 contacts per page. - page_number = request.GET.get('page', None) - all_customers = paginator.get_page(page_number) - - - data = {'customersD': all_customers, 'searchStatus': searchStatus} - return render(request, 'admin_panel/customers.html', data) - -@login_required(login_url='/panel/p_login/') -def customer(request ,c_id): - customer = Customer.objects.get(id=c_id) - categorys = ProductCategory.objects.all() - factorha = Factor.objects.filter(customer__id = c_id) - #all_prd = serializers.serialize("json", all_prda) - #return JsonResponse(all_prd,safe = False) - dateNow = datetime.datetime.now().date - data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorha': factorha} - return render(request, 'admin_panel/customerID.html', data) - -@login_required(login_url='/panel/p_login/') -def customerNew(request ,c_id): - customer = Customer.objects.get(id=c_id) - categorys = ProductCategory.objects.all() - factorha = Factor.objects.filter(customer__id = c_id) - #all_prd = serializers.serialize("json", all_prda) - #return JsonResponse(all_prd,safe = False) - dateNow = datetime.datetime.now().date - data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorha': factorha} - return render(request, 'admin_panel/customerNew.html', data) - - -@login_required(login_url='/panel/p_login/') -def customerNew2(request ,c_id): - customer = get_object_or_404(Customer, id=c_id, is_active=True) - categorys = ProductCategory.objects.all() - factorha = Factor.objects.filter(customer__id = c_id) - - debit = Article.objects.filter(customer=customer).aggregate(Sum('debit'))['debit__sum'] - credit = Article.objects.filter(customer=customer).aggregate(Sum('credit'))['credit__sum'] - mandehesabCs = 0 - try: - if (debit - credit) < 0: - mandehesabCs = abs(debit - credit) - except: - pass - - - #all_prd = serializers.serialize("json", all_prda) - #return JsonResponse(all_prd,safe = False) - dateNow = datetime.datetime.now().date - data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorha': factorha, 'mandehesabCs':mandehesabCs} - return render(request, 'admin_panel/customerNew2.html', data) - - -@login_required(login_url='/panel/p_login/') -def customerFactors(request, c_id): - customer = get_object_or_404(Customer, id=c_id) - categorys = ProductCategory.objects.all() - - # کوئری پایه برای دریافت همه فاکتورهای این مشتری - factor_qs = Factor.objects.filter(customer=customer) - - # دریافت پارامترهای فیلتر و جستجو از آدرس URL - search_query = request.GET.get('search_factor', '').strip() - filter_status = request.GET.get('status', 'all') - filter_type = request.GET.get('type', 'all') - az_tarikh = request.GET.get('az_tarikh', '').strip() - ta_tarikh = request.GET.get('ta_tarikh', '').strip() - - # ۱. اعمال فیلتر جستجو (شناسه فاکتور یا متن توضیحات) - if search_query: - if search_query.isdigit(): - factor_qs = factor_qs.filter(models.Q(id=int(search_query)) | models.Q(desc__icontains=search_query)) - else: - factor_qs = factor_qs.filter(models.Q(desc__icontains=search_query)) - - # ۲. اعمال فیلتر وضعیت پرداخت و حذف نرم - if filter_status != 'all': - if filter_status == 'deleted': - factor_qs = factor_qs.filter(is_active=False) - else: - factor_qs = factor_qs.filter(pay_status=filter_status, is_active=True) - - # ۳. اعمال فیلتر نوع فاکتور (نصب، خدمات، گارانتی) - if filter_type != 'all': - factor_qs = factor_qs.filter(FactorType=filter_type) - - # ۴. اعمال فیلتر تاریخ شروع (از تاریخ) - if az_tarikh: - az_gregorian = _parse_jalali_date(az_tarikh) - if az_gregorian: - az_datetime = datetime.datetime.combine(az_gregorian, datetime.time.min) - factor_qs = factor_qs.filter(create_date__gte=az_datetime) - - # ۵. اعمال فیلتر تاریخ پایان (تا تاریخ) - if ta_tarikh: - ta_gregorian = _parse_jalali_date(ta_tarikh) - if ta_gregorian: - ta_datetime = datetime.datetime.combine(ta_gregorian, datetime.time.max) - factor_qs = factor_qs.filter(create_date__lte=ta_datetime) - - # مرتبسازی بر اساس آخرین تاریخ ایجاد - factorha = factor_qs.order_by('-create_date') - - dateNow = datetime.datetime.now().date - - data = { - 'customer': customer, - 'categorys': categorys, - 'dateNow': dateNow, - 'factorha': factorha, - 'search_query': search_query, - 'filter_status': filter_status, - 'filter_type': filter_type, - 'az_tarikh': az_tarikh, - 'ta_tarikh': ta_tarikh - } - return render(request, 'admin_panel/customerIDFactor.html', data) - -@login_required(login_url='/panel/p_login/') -def customerFactor(request ,c_id, f_id): - customer = Customer.objects.get(id=c_id) - categorys = ProductCategory.objects.all() - factorO = Factor.objects.get(customer=customer, id=f_id) - fiteam = FactorIteam.objects.filter(factor=factorO) - #all_prd = serializers.serialize("json", all_prda) - #return JsonResponse(all_prd,safe = False) - dateNow = datetime.datetime.now().date - data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorO': factorO, 'fiteam': fiteam} - return render(request, 'admin_panel/customerFactor.html', data) - - -def productsJson(request): - from django.core import serializers - from django.http import JsonResponse - all_prd = Product.objects.all() - all_prd = serializers.serialize("json", all_prd) - return JsonResponse(all_prd,safe = False) - -def ActionJson(request, action_id): - from django.core import serializers - from django.http import JsonResponse - AcJson = Action.objects.filter(id=action_id) - AcJson = serializers.serialize("json", AcJson) - return JsonResponse(AcJson,safe = False) - -def CustomerJson(request, c_id): - from django.core import serializers - from django.http import JsonResponse - customerJson = Customer.objects.filter(id=c_id) - customerJson = serializers.serialize("json", customerJson) - return JsonResponse(customerJson,safe = False) - -@login_required(login_url='/panel/p_login/') -def productMojodi(request, p_id): - - # پیدا کردن انبار کاربر با متد filter به جای get برای جلوگیری از کرش سیستم - store_user = StoreRoom.objects.filter(owners=request.user).first() - - # اگر کاربر هنوز مالک هیچ انباری نشده است - if not store_user: - return HttpResponse("کاربر مالکیت انبار ندارد") # یا هر مقداری که فرانتاند انتظار دارد - - # محاسبه موجودی برای انبار پیدا شده - totals = ProductInStore.objects.filter( - Product_id=p_id, - StoreRoom=store_user, - year=1400 - ).aggregate( - total_in=Sum('s_in'), - total_out=Sum('s_out') - ) - - total_in = totals['total_in'] or 0 - total_out = totals['total_out'] or 0 - mojodi_prd = total_in - total_out - - return HttpResponse(str(mojodi_prd)) - -@login_required(login_url='/panel/p_login/') -def customersAdd(request): - an_name = request.POST.get('an_name', '') - an_address = request.POST.get('an_address', '') - installDate = request.POST.get('installDate', '') - idnCode = request.POST.get('idnCode', '') - - # دریافت آرایههای عنوان و شماره تلفن - titles_list = request.POST.getlist('phone_titles') - phones_list = request.POST.getlist('phones') - - # ترکیب عنوانها و شمارهها و حذف ردیفهای خالی - valid_phones = [] - for title, phone in zip(titles_list, phones_list): - if phone.strip(): - valid_phones.append({ - 'title': title.strip() if title.strip() else 'تلفن', - 'phone': phone.strip() - }) - - year, month, day = map(int, installDate.split('/')) - installDate_gregorian = JalaliDate(year, month, day).to_gregorian() - - newCs = Customer() - newCs.name_family = an_name - newCs.address = an_address - newCs.installDate = installDate_gregorian - newCs.idCode = idnCode - - # حفظ سازگاری با کدهای قدیمی (ریختن ۳ شماره اول در فیلدهای قدیمی) - newCs.phone1 = valid_phones[0]['phone'] if len(valid_phones) > 0 else '' - newCs.phone2 = valid_phones[1]['phone'] if len(valid_phones) > 1 else '' - newCs.phone3 = valid_phones[2]['phone'] if len(valid_phones) > 2 else '' - newCs.save() - - # ذخیره شمارهها به صورت نامحدود در جدول PhoneNumber - for item in valid_phones: - PhoneNumber.objects.create(customer=newCs, title=item['title'], phone_number=item['phone']) - - return redirect('/panel/customers/') - - -@login_required(login_url='/panel/p_login/') -def customerEdit(request, c_id): - an_name = request.POST.get('an_name', '') - an_address = request.POST.get('an_address', '') - installDate = request.POST.get('installDate', '') - idnCode = request.POST.get('idnCode', '') - laghv_bazdid = request.POST.get('laghv_bazdid', False) - - # دریافت آرایههای عنوان و شماره تلفن - titles_list = request.POST.getlist('phone_titles') - phones_list = request.POST.getlist('phones') - - valid_phones = [] - for title, phone in zip(titles_list, phones_list): - if phone.strip(): - valid_phones.append({ - 'title': title.strip() if title.strip() else 'تلفن', - 'phone': phone.strip() - }) - - year, month, day = map(int, installDate.split('/')) - installDate_gregorian = JalaliDate(year, month, day).to_gregorian() - - newCs = get_object_or_404(Customer, id=c_id) - newCs.name_family = an_name - newCs.address = an_address - newCs.installDate = installDate_gregorian - newCs.idCode = idnCode - newCs.laghv_bazdid = True if laghv_bazdid == 'true' else False - - # آپدیت فیلدهای قدیمی جهت حفظ سازگاری - newCs.phone1 = valid_phones[0]['phone'] if len(valid_phones) > 0 else '' - newCs.phone2 = valid_phones[1]['phone'] if len(valid_phones) > 1 else '' - newCs.phone3 = valid_phones[2]['phone'] if len(valid_phones) > 2 else '' - newCs.save() - - # بروزرسانی جدول بینهایت (حذف قبلیها و درج مجدد) - PhoneNumber.objects.filter(customer=newCs).delete() - for item in valid_phones: - PhoneNumber.objects.create(customer=newCs, title=item['title'], phone_number=item['phone']) - - return redirect('/panel/customer/'+str(c_id)) - -@login_required(login_url='/panel/p_login/') -def entezar(request): - a = datetime.datetime.now() - - searchVal = request.GET.get('searchVal', '') - searchOn = request.GET.get('searchOn', '') - searchStatus = True - full_path = request.get_full_path() - - from django.db.models import Q - - bazdid = os.environ.get('bazdid', 9) - - bazdid = int ( int(bazdid) * 4.3 ) - - dateTime6MonthAgo = a - datetime.timedelta(weeks=bazdid) - ''' customers = Customer.objects.filter(name_family__isnull=False) - m6mbazdid = [] - for customerObj in customers: - try: - actionAa = Action.objects.filter(customer=customerObj, actionType='bazdid', status='finish').last() - if actionAa.status == 'finish': - customerObj.last_bazdid_dt = actionAa.actionDateTime - customerObj.save() - if actionAa.actionDateTime.date() < dateTime6MonthAgo.date(): - m6mbazdid.append(actionAa) - except: - pass ''' - - if searchOn == 'address': - print("addressaddressaddressaddressaddress") - customers_objj = Customer.objects.filter(Q(last_bazdid_dt__lte=dateTime6MonthAgo) | Q(last_bazdid_dt__isnull=True), - installDate__lte=dateTime6MonthAgo, - laghv_bazdid=False, name_family__isnull=False, address__contains=searchVal).order_by('last_bazdid_dt') - else: - searchStatus = False - customers_objj = Customer.objects.filter(Q(last_bazdid_dt__lte=dateTime6MonthAgo) | Q(last_bazdid_dt__isnull=True), - installDate__lte=dateTime6MonthAgo, - laghv_bazdid=False, name_family__isnull=False).order_by('last_bazdid_dt') - - #customers_objj = Customer.objects.filter(name_family__isnull=False, last_bazdid_dt__lte=dateTime6MonthAgo) - - try: - entezar_bazdid = CacheTable.objects.get(key='9mahbazdid') - - entezar_bazdid.value = Customer.objects.filter( - Q(last_bazdid_dt__lte=dateTime6MonthAgo) | Q(last_bazdid_dt__isnull=True), - installDate__lte=dateTime6MonthAgo, - laghv_bazdid=False, name_family__isnull=False).count() - - entezar_bazdid.save() - except: - pass - - paginator = Paginator(customers_objj, 20) # Show 25 contacts per page. - page_number = request.GET.get('page', None) - customerHa = paginator.get_page(page_number) - - return render(request, 'admin_panel/entezar.html', {'customers': customerHa, 'searchStatus': searchStatus, 'full_path': full_path, 'searchVal': searchVal, 'searchOn':searchOn}) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -def stores(request): - if request.user.username not in ('admin', 'office1', 'office2', 'office3', 'khatibi'): - all_store = StoreRoom.objects.filter(user__id=request.user.id).order_by('id')[:20] - else: - all_store = StoreRoom.objects.all().order_by('id')[:20] - data = {'all_store': all_store} - return render(request, 'admin_panel/stores.html', data) - -from django.db.models import Sum, Subquery, OuterRef, IntegerField, Value -from django.db.models.functions import Coalesce -from django.shortcuts import render, get_object_or_404 -from django.contrib.auth.decorators import login_required, permission_required -from .models import StoreRoom, ProductCategory, Product, ProductInStore, StoreTransferRequest - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -def store(request, s_id): - productCategory = ProductCategory.objects.all() - storeO = get_object_or_404(StoreRoom, id=s_id) - searchStatus = False - searchQS = request.POST.get('searchQS', '').strip() - mojodi = request.POST.get('mojodi', '') - - # ۱. محاسبه موجودی فیزیکی کل کالاها با یک کوئری تکضرب و سریع GROUP BY - stock_balances = ProductInStore.objects.filter( - StoreRoom=storeO, year=1400 - ).values('Product_id').annotate( - total=Sum('s_in') - Sum('s_out') - ).order_by() - stock_dict = {item['Product_id']: item['total'] for item in stock_balances} - - # ۲. محاسبه کل کالاهای در انتظار خروج - pending_out_balances = StoreTransferRequest.objects.filter( - source_store=storeO, status=StoreTransferRequest.Status.PENDING - ).values('product_id').annotate( - total=Sum('quantity') - ).order_by() - pending_out_dict = {item['product_id']: item['total'] for item in pending_out_balances} - - # ۳. محاسبه کل کالاهای در انتظار ورود - pending_in_balances = StoreTransferRequest.objects.filter( - target_store=storeO, status=StoreTransferRequest.Status.PENDING - ).values('product_id').annotate( - total=Sum('quantity') - ).order_by() - pending_in_dict = {item['product_id']: item['total'] for item in pending_in_balances} - - # ۴. استخراج سریع تمام آیدیهای منحصربهفرد مرتبط با این انبار در سطح حافظه - all_pids = set(stock_dict.keys()) | set(pending_out_dict.keys()) | set(pending_in_dict.keys()) - - # ۵. کوئری نهایی فوقبهینه برای خواندن کالاها (حل باگ N+1 با دستور select_related) - products_qs = Product.objects.select_related('ProductCategory').filter(id__in=all_pids) - - # اعمال فیلتر متنی جستجو در سطح دیتابیس - if searchQS: - products_qs = products_qs.filter(product_name__icontains=searchQS) - searchStatus = True - - # 🛠️ اصلاح فرآیند ترتیب: استفاده از 'id' جهت انطباق ۱۰۰٪ با ترتیب پیشفرض و سنتی دیتابیس شما - # نکته: اگر مایلید بر اساس زمان ایجاد مرتب شود، میتوانید آن را به 'createdDT' یا '-createdDT' تغییر دهید. - products_list = list(products_qs.order_by('id')) - - # ۶. معماری زمان ثابت O(1): چسباندن پرسرعت دیتاها در حافظه رم سرور - for prd in products_list: - prd.mojodi = stock_dict.get(prd.id, 0) - prd.pending_out = pending_out_dict.get(prd.id, 0) - prd.pending_in = pending_in_dict.get(prd.id, 0) - - # ۷. اعمال فیلترهای منطقی موجودی در لایه پایتون - if mojodi == "0": - products_list = [p for p in products_list if p.mojodi <= 0] - searchStatus = True - elif mojodi == "1": - products_list = [p for p in products_list if p.mojodi > 0] - searchStatus = True - - data = { - 'storeO': storeO, - 'productSum': products_list, - 's_id': s_id, - 'searchStatus': searchStatus, - "mojodi": mojodi, - 'djsearchQS': searchQS, - 'productCategory': productCategory - } - return render(request, 'admin_panel/store.html', data) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -def operations(request, s_id): - page = request.GET.get('page', 1) - productCategory = ProductCategory.objects.all() - storeO = get_object_or_404(StoreRoom, id=s_id) - - # بهینهسازی کلیدی: استفاده از select_related برای جلوگیری از کندی و پر شدن RAM دیتابیس - operationsList = ProductInStore.objects.filter( - StoreRoom=storeO, year=1400 - ).select_related('Product').order_by('-createdDT') - - paginator = Paginator(operationsList, 25) - try: - data_list = paginator.page(page) - except PageNotAnInteger: - data_list = paginator.page(1) - except EmptyPage: - data_list = paginator.page(paginator.num_pages) - - data = { - 'storeO': storeO, - 'operationsList': data_list, - 's_id': s_id, - 'productCategory': productCategory - } - return render(request, 'admin_panel/operations.html', data) - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -def operationProduct(request, s_id, p_id): - productCategory = ProductCategory.objects.all() - storeO = get_object_or_404(StoreRoom, id=s_id) - - # بهینهسازی کلیدی در فیلتر اختصاصی محصول - operationsList = ProductInStore.objects.filter( - StoreRoom=storeO, year=1400, Product__id=p_id - ).select_related('Product').order_by('-createdDT') - - data = { - 'storeO': storeO, - 'operationsList': operationsList, - 's_id': s_id, - 'productCategory': productCategory - } - return render(request, 'admin_panel/operations.html', data) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -def newOperation(request, s_id, p_id): - productCategory = ProductCategory.objects.all() - storeO = StoreRoom.objects.get(id=s_id) - allStores = StoreRoom.objects.exclude(id=s_id) - product = Product.objects.get(id=p_id) - data = {'s_id': s_id,'p_id': p_id, 'allStores': allStores, 'storeO': storeO, 'product':product, 'productCategory': productCategory} - return render(request, 'admin_panel/newOperation.html', data ) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -def store_transfers(request, s_id): - """ - داشبورد و کارتابل جامع مدیریت انتقالهای انبار - """ - storeO = get_object_or_404(StoreRoom, id=s_id) - - # ۱. کارتابل ورودی (بارهایی که به سمت این انبار آمده و منتظر تایید ما هستند) - # استفاده از select_related برای جلوگیری از صدها کوئری اضافی به دیتابیس - incoming_pending = StoreTransferRequest.objects.filter( - target_store=storeO, - status=StoreTransferRequest.Status.PENDING - ).select_related('product', 'source_store', 'requester').order_by('-created_at') - - # ۲. کارتابل خروجی (بارهایی که ما فرستادیم و منتظر تایید انبار مقصد هستیم) - outgoing_pending = StoreTransferRequest.objects.filter( - source_store=storeO, - status=StoreTransferRequest.Status.PENDING - ).select_related('product', 'target_store', 'requester').order_by('-created_at') - - # ۳. تاریخچه انتقالات اخیر (۵۰ مورد آخر تعیین تکلیف شده برای این انبار) - history_list = StoreTransferRequest.objects.filter( - Q(source_store=storeO) | Q(target_store=storeO) - ).exclude( - status=StoreTransferRequest.Status.PENDING - ).select_related('product', 'source_store', 'target_store', 'approver').order_by('-action_date')[:50] - - data = { - 'storeO': storeO, - 's_id': s_id, - 'incoming_pending': incoming_pending, - 'outgoing_pending': outgoing_pending, - 'history_list': history_list, - } - return render(request, 'admin_panel/store_transfers.html', data) - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -@require_POST -def process_transfer_action(request, transfer_id): - """ - پردازش امن اقدامات انباردار (تایید، رد، انصراف) با تراکنشهای اتمیک - """ - action = request.POST.get('action') - reason = request.POST.get('reason', '').strip() - - # دریافت درخواست انتقال - transfer = get_object_or_404(StoreTransferRequest, id=transfer_id) - - # تعیین انباری که کاربر از آنجا اقدام کرده جهت ریدایرکت صحیح - redirect_store_id = transfer.target_store_id if action in ['approve', 'reject'] else transfer.source_store_id - - try: - if action == 'approve': - approve_transfer_request(request_id=transfer.id, approver=request.user) - messages.success(request, f"انتقال {transfer.quantity} عدد {transfer.product.product_name} با موفقیت تایید و به موجودی انبار اضافه شد.") - - elif action == 'reject': - if not reason: - messages.error(request, "برای رد کردن بار، وارد کردن علت رد الزامی است.") - return redirect('admin_panel:store_transfers', s_id=redirect_store_id) - - reject_transfer_request(request_id=transfer.id, rejector=request.user, reason=reason) - messages.warning(request, f"درخواست انتقال بار رد شد و به انبار مبدا اطلاع داده شد.") - - elif action == 'cancel': - cancel_transfer_request(request_id=transfer.id, user=request.user) - messages.info(request, "درخواست انتقال توسط شما لغو گردید.") - - else: - messages.error(request, "دستور ارسالی نامعتبر است.") - - except ValidationError as e: - # نمایش خطاهای منطقی (مثلاً کمبود موجودی انبار مبدا در لحظه تایید) - error_text = ' '.join(e.messages) if hasattr(e, 'messages') else str(e) - messages.error(request, f"خطا در انجام عملیات: {error_text}") - except PermissionError as e: - messages.error(request, str(e)) - except Exception as e: - logger.error(f"Error processing transfer action #{transfer_id}: {str(e)}", exc_info=True) - messages.error(request, "خطای سیستمی در پردازش تراکنش رخ داد.") - - return redirect('admin_panel:store_transfers', s_id=redirect_store_id) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -def newStore(request): - storeName = request.POST.get('storeName', '') - newStore = StoreRoom() - newStore.store_name = storeName - newStore.save() - - return redirect('/panel/store/') - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -def productAdd(request): - namePrd = request.POST.get('namePrd', '') - category = request.POST.get('category', '') - price = request.POST.get('price', '') - mojodiAval = request.POST.get('mojodiAval', '') - storeroom = request.POST.get('storeroom', '') - - newProduct = Product() - newProduct.product_name = namePrd - newProduct.ProductCategory = ProductCategory.objects.get(id=category) - newProduct.product_price = price - newProduct.save() - - prd_in_store = ProductInStore() - prd_in_store.Product = newProduct - prd_in_store.StoreRoom = StoreRoom.objects.get(id=storeroom) - prd_in_store.s_in = mojodiAval - prd_in_store.desc = "موجودی اولیه: "+str(mojodiAval) - prd_in_store.movement_type = ProductInStore.MovementType.INITIAL - prd_in_store.save() - - #return HttpResponse(installDate) - return redirect('/panel/store/1') - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -def productEdit(request): - prd_code = request.POST.get('prd_code', '') - namePrd = request.POST.get('namePrd', '') - category = request.POST.get('category', '') - price = request.POST.get('price', '') - - #return HttpResponse(prd_code) - - editProduct = Product.objects.get(id=prd_code) - editProduct.product_name = namePrd - editProduct.ProductCategory = ProductCategory.objects.get(id=category) - editProduct.product_price = price - editProduct.save() - - return redirect('/panel/store/1') - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -def productDel(request, p_id, s_id): - Product.objects.get(id=p_id).delete() - return redirect('/panel/store/'+str(s_id)) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.OnlyAnbar', raise_exception=True) -def operation(request): - if request.method != 'POST': - return HttpResponseBadRequest("متد ارسالی نامعتبر است.") - - user_op = request.user - user_store_room = get_object_or_404(StoreRoom, owners=user_op) - - # استفاده از توابع امن اختصاصی پروژه برای جداسازی مقادیر عددی - prd_id = _safe_int(request.POST.get('prd_id')) - action_type = request.POST.get('actionType', '') - tedad = _safe_int(request.POST.get('tedad')) - azanbar = _safe_int(request.POST.get('azanbar')) - beanbar = _safe_int(request.POST.get('beanbar')) - desc = request.POST.get('desc', '').strip() - - if tedad <= 0: - return HttpResponseBadRequest("تعداد وارد شده باید بیشتر از صفر باشد.") - - s_room = get_object_or_404(StoreRoom, id=azanbar) - product_obj = get_object_or_404(Product, id=prd_id) - - try: - # ===================================================================== - # بخش اول: انتقال بین انبارها (واگذاری کامل به لایه سرویس) - # ===================================================================== - if action_type == 'transfer': - if not beanbar: - return HttpResponse("انبار مقصد مشخص نشده است.") - - target_store = get_object_or_404(StoreRoom, id=_safe_int(beanbar)) - - # فراخوانی لایه سرویس برای ثبت درخواست انتقال (بدون تغییر مستقیم موجودی) - create_transfer_request( - source_store=s_room, - target_store=target_store, - product=product_obj, - quantity=tedad, - requester=request.user, - desc=desc or f"درخواست انتقال از انبار {s_room.store_name} به {target_store.store_name}" - ) - - logger.info( - f"Transfer request created: {tedad}x {product_obj.product_name} from Store #{s_room.id} to Store #{target_store.id} by User #{request.user.id}" - ) - return redirect('/panel/store/' + str(s_room.id)) - - # ===================================================================== - # بخش دوم: ورود و خروج دستی (کنترل مستقیم با Transaction و Lock) - # ===================================================================== - elif action_type in ['vorod', 'khoroj']: - user_s_room = get_object_or_404(StoreRoom, owners=user_op) - if not user_op.is_superuser and s_room != user_s_room: - return HttpResponse("شما دسترسی ورود / خروج به این انبار ندارید") - with transaction.atomic(): - # ساخت کوئری پایه برای دریافت تراکنشهای سال جاری کالا - qs = ProductInStore.objects.filter( - Product=product_obj, StoreRoom=s_room, year=1400 - ) - - # قفلگذاری ردیفها برای جلوگیری از Race Condition (در دیتابیسهای پشتیبان) - if connection.features.has_select_for_update: - qs = qs.select_for_update() - - locked_records = list(qs) - - # --- الف) عملیات ورود دستی --- - if action_type == 'vorod': - ProductInStore.objects.create( - StoreRoom=s_room, - Product=product_obj, - s_in=tedad, - s_out=0, - year=1400, - desc=f"ورود: {tedad} به انبار {s_room.store_name}#{desc}", - movement_type=ProductInStore.MovementType.DIRECT_IN - ) - - # --- ب) عملیات خروج دستی --- - elif action_type == 'khoroj': - # محاسبه سریع موجودی در رم بدون فشار مجدد به دیتابیس - total_in = sum(item.s_in for item in locked_records if item.s_in) - total_out = sum(item.s_out for item in locked_records if item.s_out) - mojodi_prd = total_in - total_out - - if mojodi_prd < tedad: - # تطابق ۱۰۰ درصدی با پاسخ متنی مورد انتظار فرانتاند - return HttpResponse("موجودی کافی نیست، موجودی فعلی: " + str(mojodi_prd)) - - ProductInStore.objects.create( - StoreRoom=s_room, - Product=product_obj, - s_in=0, - s_out=tedad, - year=1400, - desc=f"خروج: {tedad} از انبار {s_room.store_name}#{desc}", - movement_type=ProductInStore.MovementType.DIRECT_OUT - ) - - else: - return HttpResponseBadRequest("نوع عملیات نامعتبر است.") - - except ValidationError as e: - # مدیریت خطاهای اعتبارسنجی (مثل کمبود موجودی در لایه سرویس یا یکسان بودن انبارها) - error_msg = ' '.join(e.messages) if hasattr(e, 'messages') else str(e) - logger.warning(f"Validation error in store operation: {error_msg}") - return HttpResponse(error_msg) - - except PermissionDenied as e: - # مدیریت خطای دسترسی کاربر به انبار - logger.warning(f"Permission denied in store operation for user {request.user.id}: {str(e)}") - return HttpResponse("شما دسترسی لازم برای انجام این عملیات در این انبار را ندارید.", status=403) - - except Exception as e: - logger.error(f"Critical error in store operation view: {str(e)}", exc_info=True) - return HttpResponse("خطای سیستمی رخ داد. تراکنش لغو شد.", status=500) - - return redirect('/panel/store/' + str(s_room.id)) - -@login_required(login_url='/panel/p_login/') -def newFactor(request, c_id): - prdsList = request.POST.get('prdsList', '') - sarResidDate = request.POST.get('sarResidDate', None) - pardakhti = request.POST.get('pardakhti', None) - #return HttpResponse(pardakhti) - if pardakhti: - pardakhti=int(pardakhti) - if pardakhti>=1: - pass - else: - pardakhti = None - #return HttpResponse(sarResidDate) - try: - sarResidDate = digits.fa_to_en(digits.ar_to_fa(sarResidDate)) - #return HttpResponse(sarResidDate) - sarResidDate = sarResidDate.split("/") - #return HttpResponse(sarResidDate[2]) - sarResidDate = JalaliDate(int(sarResidDate[0]), int(sarResidDate[1]), int(sarResidDate[2])).to_gregorian() - #return HttpResponse(sarResidDate) - except: - sarResidDate = None - - #return HttpResponse(sarResidDate[1]) - #sarResidDate = JalaliDate(sarResidDate[0], sarResidDate[1], sarResidDate[2]).to_gregorian() - - payType = request.POST.get('payType', '') - FactorDate = request.POST.get('FactorDate', '') - FactorType = request.POST.get('FactorType', '') - FactorDesc = request.POST.get('FactorDesc', '') - Factorfail = False - customerObj=Customer.objects.get(id=c_id) - storeUser = StoreRoom.objects.get(user__id=request.user.id) - import json - prdsList = json.loads(prdsList) - sum_price = 0 - for prd in prdsList: - if prd['garanty_Esh'] == ' ' or prd['garanty_Esh'] == '' or prd['garanty_Esh'] == None: - sum_price += prd['prd_count'] * prd['price'] - - #return HttpResponse(prd_code) - try: - newFactor = Factor() - newFactor.customer= customerObj - newFactor.amount = sum_price - if payType in ('naghd', 'kartKhan', 'cardToCard'): - newFactor.pay_status = 'paid' - else: - newFactor.pay_status = 'unpaid' - newFactor.FactorType = FactorType - newFactor.PayType = payType - newFactor.desc = FactorDesc - if sarResidDate != None: - newFactor.deadline = sarResidDate - newFactor.user = User.objects.get(id=request.user.id) - newFactor.save() - except: - try: - Factorfail=True - newFactor.delete() - except: - pass - - if Factorfail != True: - #accFactor To article - is_naghd = False - articleHesabDari = Article() - articleHesabDari.debit = newFactor.amount - articleHesabDari.credit = 0 - articleHesabDari.customer = customerObj - articleHesabDari.factor = newFactor - - if payType in ('naghd', 'kartKhan', 'cardToCard'): - is_naghd = True - - articleHesabDari.type = payType - articleHesabDari.desc = str(FactorType) + " " + str(customerObj.name_family) + " طی فاکتور شماره: " + str(newFactor.id) - articleHesabDari.save() - - if is_naghd: - articleHesabDari2 = Article() - articleHesabDari2.debit = 0 - articleHesabDari2.credit = newFactor.amount - articleHesabDari2.customer = customerObj - articleHesabDari2.type = payType - articleHesabDari2.factor = newFactor - articleHesabDari2.desc = str(FactorType) + " " + str(customerObj.name_family) + " تسویه نقدی فاکتور شماره: " + str(newFactor.id) - articleHesabDari2.save() - elif pardakhti != None and pardakhti!='' and pardakhti != ' ': - articleHesabDari2 = Article() - articleHesabDari2.debit = 0 - articleHesabDari2.credit = pardakhti - articleHesabDari2.customer = customerObj - articleHesabDari2.type = payType - articleHesabDari2.factor = newFactor - articleHesabDari2.desc = str(customerObj.name_family) + " پرداخت نقد در محل برا فاکتور " + str(newFactor.id) - articleHesabDari2.save() - - for prd in prdsList: - try: - fIteams = FactorIteam() - fIteams.factor = newFactor - if prd['prd_id'] == 9999: - Gproduct = None - fIteams.product = Gproduct - fIteams.product_name = prd['product_name'] - fIteams.num = prd['prd_count'] - fIteams.amount = int(prd['priceKol']) - else: - Gproduct = Product.objects.get(id=prd['prd_id']) - fIteams.product = Gproduct - fIteams.product_name = Gproduct.product_name - fIteams.num = prd['prd_count'] - fIteams.amount = prd['prd_count'] * Gproduct.product_price - fIteams.garantyEsh = prd['garanty_Esh'] - fIteams.save() - except: - Factorfail = True - newFactor.delete() - break - - if Factorfail != True: - for prd in prdsList: - if prd['prd_id'] != 9999: - pInStore = ProductInStore() - sRoom = storeUser - productO = Product.objects.get(id=prd['prd_id']) - pInStore.StoreRoom = sRoom - pInStore.Product = productO - pInStore.factor = newFactor - productS_in = ProductInStore.objects.filter(Product=productO, StoreRoom=sRoom, year=1400).aggregate(Sum('s_in'))['s_in__sum'] - productS_out = ProductInStore.objects.filter(Product=productO, StoreRoom=sRoom, year=1400).aggregate(Sum('s_out'))['s_out__sum'] - mojodi_prd = productS_in - productS_out - if mojodi_prd >= prd['prd_count']: - pInStore.s_out = prd['prd_count'] - if prd['garanty_Esh'] != ' ' and prd['garanty_Esh'] != '' and prd['garanty_Esh'] != None: - pInStore.desc = "خروج: " + str(prd['prd_count']) + "#"+str(prd['garanty_Esh'])+ "#" + str(customerObj.name_family) + " * " + str(request.user.first_name) + " " + str(request.user.last_name) - else: - pInStore.desc = "خروج: " + str(prd['prd_count']) + "#فروش" + "#" + str(customerObj.name_family) + " * " + str(request.user.first_name) + " " + str(request.user.last_name) - pInStore.save() - else: - return HttpResponse("موجودی کافی نیست، موجودی فعلی: "+ str(mojodi_prd)) - - return redirect('/panel/customer/'+str(c_id)+'/factors/') - -@login_required(login_url='/panel/p_login/') -def newFactor2(request, c_id): - if request.method != 'POST': - return HttpResponseBadRequest("متد ارسالی باید POST باشد.") - - user_op = request.user - - try: - prds_list = json.loads(request.POST.get('prdsList') or '[]') - json_pardakht_ha = json.loads(request.POST.get('PardakhtHa') or '{}') - except json.JSONDecodeError: - return HttpResponseBadRequest("فرمت دادههای ارسالی JSON نامعتبر است.") - - factor_type = request.POST.get('FactorType', '') - factor_desc = request.POST.get('FactorDesc', '') - sar_resid_date = _parse_jalali_date(request.POST.get('sarResidDate')) - - customer_obj = get_object_or_404(Customer, id=c_id) - store_room = get_object_or_404(StoreRoom, owners=user_op) - - # رفع مشکل متنی/عددی در استخراج شناسه کالاها - product_ids = [] - for item in prds_list: - p_id = item.get('prd_id') - if p_id and _safe_int(p_id) != 9999: - product_ids.append(_safe_int(p_id)) - - products_by_id = {p.id: p for p in Product.objects.filter(id__in=product_ids)} - - sum_price = sum( - _safe_int(item.get('prd_count')) * _safe_int(item.get('price')) - for item in prds_list - if not str(item.get('garanty_Esh', '')).strip() - ) - - try: - with transaction.atomic(): - - new_factor = Factor.objects.create( - customer=customer_obj, - amount=sum_price, - FactorType=factor_type, - desc=factor_desc, - deadline=sar_resid_date, - user=user_op - ) - - Article.objects.create( - debit=sum_price, - credit=0, - customer=customer_obj, - factor=new_factor, - desc=f"{customer_obj.name_family} فاکتور شماره: {new_factor.id}", - user=user_op - ) - - payment_map = { - 'l_naghd': 'نقد', - 'l_kartbekart': 'کارت به کارت', - 'l_kartKhan': 'کارت خوان', - 'l_takhfif': 'تخفیف' - } - - for key, amount_raw in json_pardakht_ha.items(): - amount = _safe_int(amount_raw) - if amount <= 0: - continue - - if key in payment_map: - nahve_pardakht = payment_map[key] - Article.objects.create( - debit=0, - credit=amount, - customer=customer_obj, - factor=new_factor, - desc=f"{nahve_pardakht} {customer_obj.name_family} فاکتور شماره: {new_factor.id}", - nahvePardakht=nahve_pardakht, - payStatus="true", - user=user_op - ) - - elif key in ['l_nesiye', 'l_checkPrice']: - is_nesiye = (key == 'l_nesiye') - type_str = 'nesiye' if is_nesiye else 'check' - ts_key = 'l_nesiyeSarResid' if is_nesiye else 'l_checkPriceSarResid' - - sar_resid_dt = _parse_timestamp(json_pardakht_ha.get(ts_key)) - - Sarresid.objects.create( - customer=customer_obj, - price=amount, - payStatus="false", - type=type_str, - user=user_op, - factor=new_factor, - sarresidDT=sar_resid_dt - ) - - factor_items_pool = [] - user_fullname = f"{user_op.first_name} {user_op.last_name}".strip() or user_op.username - - for item in prds_list: - # تبدیل امن شناسه به عدد - prd_id = _safe_int(item.get('prd_id')) - prd_count = _safe_int(item.get('prd_count')) - garanty_esh = item.get('garanty_Esh', '') - - if prd_id == 9999: - factor_items_pool.append(FactorIteam( - factor=new_factor, - product=None, - product_name=item.get('product_name', ''), - num=prd_count, - amount=_safe_int(item.get('priceKol')), - garantyEsh=garanty_esh - )) - else: - product_obj = products_by_id.get(prd_id) - - if not product_obj: - raise InventoryException(f"خطا در دریافت محصول: محصولی با شناسه {prd_id} در سیستم وجود ندارد.") - - factor_items_pool.append(FactorIteam( - factor=new_factor, - product=product_obj, - product_name=product_obj.product_name, - num=prd_count, - amount=prd_count * _safe_int(product_obj.product_price), - garantyEsh=garanty_esh - )) - - FactorIteam.objects.bulk_create(factor_items_pool, batch_size=500) - - # فرآیند کسر از انبار (Enterprise Level) - for item in prds_list: - prd_id = _safe_int(item.get('prd_id')) - if prd_id == 9999: - continue - - prd_count = _safe_int(item.get('prd_count')) - garanty_esh = item.get('garanty_Esh', '') - product_obj = products_by_id.get(prd_id) - - if not product_obj: - continue - - # ۱. کوئری پایه - qs = ProductInStore.objects.filter( - Product=product_obj, - StoreRoom=store_room, - year=1400 - ) - - # ۲. قفل دیتابیس هوشمند و سازگار با تمام پایگاههای داده - if connection.features.has_select_for_update: - qs = qs.select_for_update() - - # ۳. بارگذاری امن در رم برای جلوگیری از خطای Aggregate در دیتابیس قفلشده - locked_records = list(qs) - - # ۴. محاسبه دقیق و پرسرعت در پایتون - total_in = sum(rec.s_in for rec in locked_records if rec.s_in) - total_out = sum(rec.s_out for rec in locked_records if rec.s_out) - mojodi_prd = total_in - total_out - - if mojodi_prd < prd_count: - # استفاده از متن دقیق خطای قبلی جهت حفظ سازگاری با فرانتاند - raise InventoryException(f"موجودی کافی نیست، موجودی فعلی {product_obj.product_name}: {mojodi_prd}") - - # ۵. تشخیص نوع تراکنش برای سیستم گزارشگیری جدید انبار - if garanty_esh and str(garanty_esh).strip(): - desc_text = f"خروج: {prd_count}#{garanty_esh}#{customer_obj.name_family} * {user_fullname}" - - if "اشانتیون" in str(garanty_esh): - m_type = ProductInStore.MovementType.PROMOTION - else: - m_type = ProductInStore.MovementType.WARRANTY - else: - desc_text = f"خروج: {prd_count}#فروش#{customer_obj.name_family} * {user_fullname}" - m_type = ProductInStore.MovementType.SALE - - # ۶. ثبت تراکنش خروجی انبار - ProductInStore.objects.create( - StoreRoom=store_room, - Product=product_obj, - factor=new_factor, - s_out=prd_count, - desc=desc_text, - movement_type=m_type, # ثبت ساختاریافته نوع خروج برای سرعت در گزارشگیری - year=1400 - ) - - except InventoryException as e: - return HttpResponse(str(e), status=400) - except Exception as e: - logger.error(f"Error creating factor for customer {c_id}: {str(e)}", exc_info=True) - return HttpResponse("خطایی غیرمنتظره در سرور رخ داد. اطلاعات ذخیره نشد.", status=500) - - return redirect(f'/panel/customer/{c_id}/factors/') - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.DelFactor', raise_exception=True) -@require_POST -def FactorDel(request, c_id, f_id): - customer_obj = get_object_or_404(Customer, id=c_id) - factor_initial = get_object_or_404(Factor, id=f_id, customer=customer_obj) - - if factor_initial.pay_status == 'cancell' or not factor_initial.is_active: - return HttpResponseBadRequest("این فاکتور قبلاً باطل یا برگشت داده شده است.") - - user_fullname = f"{request.user.first_name} {request.user.last_name}".strip() or request.user.username - cancel_reason = request.POST.get('cancel_reason', 'error') - payment_action = request.POST.get('payment_action', 'keep') - - if cancel_reason == 'return': - reason_text = "برگشت از فروش (مرجوعی مشتری)" - inv_movement = ProductInStore.MovementType.RETURN - else: - reason_text = "اصلاح خطای کاربری" - inv_movement = ProductInStore.MovementType.ERROR_CORRECTION - - try: - with transaction.atomic(): - if connection.features.has_select_for_update: - factor = Factor.objects.select_for_update().get(pk=factor_initial.pk) - else: - factor = Factor.objects.get(pk=factor_initial.pk) - - if factor.pay_status == 'cancell' or not factor.is_active: - return HttpResponseBadRequest("خطای همزمانی: این فاکتور در لحظه فرستادن درخواست باطل شده بود.") - - factor.is_active = False - factor.pay_status = 'cancell' - factor.save(update_fields=['is_active', 'pay_status']) - - # واکشی اسناد پرداخت قبل از ایجاد سند جدید (جلوگیری از باگ تکرار سند) - payments_to_reverse = [] - if payment_action == 'reverse' or cancel_reason == 'error': - payments_to_reverse = list(Article.objects.filter( - Q(debit=0) | Q(debit__isnull=True), - factor=factor, - credit__gt=0 - )) - - # ۱. صدور سند معکوس مالی برای کل مبلغ فاکتور - factor_amount = int(factor.amount or 0) - if factor_amount > 0: - Article.objects.create( - debit=0, - credit=factor_amount, - customer=customer_obj, - factor=factor, - type=factor.PayType, - desc=f"برگشت از فروش و ابطال فاکتور شماره {factor.id} (مرجوعی کالا توسط مشتری) - کاربر: {user_fullname}" if cancel_reason == 'return' else f"اصلاح خطای سیستم: ابطال فاکتور اشتباه شماره {factor.id} (بدون جابجایی واقعی کالا) - کاربر: {user_fullname}", - user=request.user, - payStatus="true" - ) - - # ۲. خنثی کردن پرداختهای اولیه فاکتور - for p in payments_to_reverse: - Article.objects.create( - debit=p.credit, - credit=0, - customer=customer_obj, - factor=factor, - type=p.type, - nahvePardakht=p.nahvePardakht, - desc=f"عودت وجه پرداخت شده / ابطال رسید فاکتور {factor.id} (به دلیل مرجوعی کالا) - کاربر: {user_fullname}" if cancel_reason == 'return' else f"اصلاح خطای سیستم: ابطال رسید پرداخت فاکتور اشتباه شماره {factor.id} - کاربر: {user_fullname}", - user=request.user, - payStatus="true" - ) - - # ۳. 🛠️ اصلاح انبار (حل باگ عدم تغییر موجودی سیستم) - stock_movements = list(ProductInStore.objects.filter(factor=factor, s_out__gt=0)) - - for movement in stock_movements: - pInStore = ProductInStore( - StoreRoom=movement.StoreRoom, - Product=movement.Product, - factor=factor, - s_in=movement.s_out, # برگرداندن تعداد کسر شده به ستون ورودی - s_out=0, - year=movement.year, # 💡 فیکس قطعی: استفاده دقیق از سال مالی تراکنش اصلی (۱۴۰۰) جهت همخوانی با توابع سیستم - desc=f"ورود به انبار بابت برگشت از فروش کالا (فاکتور {factor.id}) - کاربر: {user_fullname}" if cancel_reason == 'return' else f"ورود به انبار بابت اصلاح خطای ثبت فاکتور {factor.id} - کاربر: {user_fullname}", - movement_type=inv_movement - ) - pInStore.save() # فراخوانی متد save مدل شما که محاسبات تاریخچه و موجودی لحظهای را انجام میدهد - - # ۴. ابطال اقساط و سررسیدهای پاس نشده - Sarresid.objects.filter(factor=factor, payStatus="false").update( - payStatus="cancell", - desc=f"ابطال بابت {reason_text} فاکتور {factor.id}" - ) - - logger.info(f"Factor {factor.id} successfully cancelled. Reason: {cancel_reason}, Payment: {payment_action}") - - except Exception as e: - logger.error(f"Critical error in FactorDel for factor {f_id}: {str(e)}", exc_info=True) - return HttpResponse("خطای سیستمی در فرآیند ابطال و صدور اسناد اصلاحی رخ داد.", status=500) - - return redirect('admin_panel:customerFactors', c_id=c_id) - -from django.contrib import messages -from django.shortcuts import get_object_or_404, redirect -import logging - -logger = logging.getLogger(__name__) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.DelCustomer', raise_exception=True) -def customerDel(request, c_id): - customer_obj = get_object_or_404(Customer, id=c_id) - - try: - # ۱. بررسی وجود هرگونه سابقه مالی/حسابداری (حتی با مانده صفر) - has_articles = Article.objects.filter(customer=customer_obj).exists() - - # ۲. بررسی وجود هرگونه سابقه چک یا نسیه (حتی در صورت پاس شدن و تسویه کامل) - has_sarresids = Sarresid.objects.filter(customer=customer_obj).exists() - - # ۳. بررسی وجود هرگونه فاکتور ثبت شده برای این مشتری - has_factors = Factor.objects.filter(customer=customer_obj).exists() - - # ۴. بررسی وجود هرگونه سابقه اقدام، بازدید یا نظرسنجی - has_actions = Action.objects.filter(customer=customer_obj).exists() - - # ۵. اگر هر کدام از این سوابق وجود داشته باشد، به هیچ عنوان اجازه غیرفعالسازی/حذف نمیدهیم - if has_articles or has_sarresids or has_factors or has_actions: - error_msg = f"عملیات ناموفق: مشتری '{customer_obj.name_family}' به دلیل داشتن سابقه در سیستم قابل حذف نیست! دلایل: " - reasons = [] - - if has_articles: - reasons.append("داشتن تراکنش مالی یا گردش حسابداری") - if has_sarresids: - reasons.append("داشتن سابقه چک یا نسیه (حتی تسویه شده)") - if has_factors: - reasons.append("داشتن فاکتور ثبتشده") - if has_actions: - reasons.append("داشتن سابقه اقدامات، بازدید یا نظرسنجی") - - error_msg += "، ".join(reasons) + "." - - # ارسال پیام خطا به تمپلیت و بازگرداندن کاربر به صفحه قبلی - messages.error(request, error_msg) - return redirect(request.META.get('HTTP_REFERER', '/panel/customers/')) - - # ۶. در صورتی که مشتری کاملاً خام بود و هیچ سابقهای در هیچ بخشی نداشت، حذف میشود - customer_obj.delete() - messages.success(request, f"مشتری '{customer_obj.name_family}' که فاقد هرگونه سابقهای بود، با موفقیت از سیستم حذف شد.") - return redirect('/panel/customers/') - - except Exception as e: - logger.error(f"Error in deleting customer {c_id}: {str(e)}", exc_info=True) - messages.error(request, "خطای سیستمی در بررسی سوابق و حذف مشتری رخ داد.") - return redirect(request.META.get('HTTP_REFERER', '/panel/customers/')) - - -@login_required(login_url='/panel/p_login/') -def customerHesabdari(request ,c_id): - customer = Customer.objects.get(id=c_id) - try: - debit = Article.objects.filter(customer=customer).aggregate(Sum('debit'))['debit__sum'] - credit = Article.objects.filter(customer=customer).aggregate(Sum('credit'))['credit__sum'] - mandehesabCs = debit - credit - articls = Article.objects.filter(customer=customer).order_by('-createdDT') - except: - articls =None - mandehesabCs = 0 - - dateNow = datetime.datetime.now().date - data = {'customer': customer, 'mandehesabCs': mandehesabCs, 'articls': articls} - return render(request, 'admin_panel/customerHesabDari.html', data) - -@login_required(login_url='/panel/p_login/') -def sarresidh(request ,c_id): - customer = Customer.objects.get(id=c_id) - try: - all_sarresid = Sarresid.objects.filter(customer=customer).order_by('-sarresidDT') - except: - all_sarresid = None - - data = {'customer': customer, 'all_sarresid': all_sarresid} - return render(request, 'admin_panel/customerSarresid.html', data) - -@login_required(login_url='/panel/p_login/') -def customerHesabdariAdd(request ,c_id): - user_op = request.user - price = request.POST.get('price', None) - type = request.POST.get('type', None) - typePy = request.POST.get('typePy', None) - desc = request.POST.get('desc', None) - nahvePardakhat = request.POST.get('nahvePardakhat', None) - - newArticl = Article() - newArticl.customer = Customer.objects.get(id=c_id) - newArticl.desc = desc - newArticl.typePy = typePy - if type == 'credit': - newArticl.credit = price - newArticl.debit = 0 - elif type == 'debit': - newArticl.debit = price - newArticl.credit = 0 - newArticl.user = user_op - newArticl.nahvePardakht = nahvePardakhat - newArticl.save() - return redirect('/panel/customer/'+str(c_id)+'/hesabdari') - - -@login_required(login_url='/panel/p_login/') -def customerAction(request, c_id): - # استفاده از get_object_or_404 برای امنیت بیشتر - customer = get_object_or_404(Customer, id=c_id) - - # دریافت پارامترهای فیلتر از URL (پیشفرض: all) - filter_type = request.GET.get('actionType', 'all') - filter_status = request.GET.get('status', 'all') - - # کوئری پایه برای اقدامات این مشتری - actions = Action.objects.filter(customer=customer) - - # اعمال فیلتر بر اساس نوع اقدام (بازدید، نصب و ...) - if filter_type != 'all': - actions = actions.filter(actionType=filter_type) - - # اعمال فیلتر بر اساس وضعیت (انجام شده، در انتظار و ...) - if filter_status != 'all': - actions = actions.filter(status=filter_status) - - # مرتبسازی نزولی بر اساس تاریخ ایجاد - actions = actions.order_by("-createdDT") - - allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') - - data = { - 'customer': customer, - 'actions': actions, - 'allUsers': allUsers, - # ارسال مقادیر فیلتر به قالب برای حفظ وضعیت انتخابشده در دراپداونها - 'filter_type': filter_type, - 'filter_status': filter_status - } - - return render(request, 'admin_panel/customerAction.html', data) - -@login_required(login_url='/panel/p_login/') -def customerNazar(request ,c_id): - customer = Customer.objects.get(id=c_id) - actions = Action.objects.filter(customer=customer, nazarDT__isnull=False).order_by("-createdDT") - allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') - data = {'customer': customer, 'actions': actions, 'allUsers': allUsers} - return render(request, 'admin_panel/customer/nazar.html', data) - -@login_required(login_url='/panel/p_login/') -def customerNewAction(request ,c_id): - actionType = request.POST.get('actionType', None) - dateTimeAnjam = request.POST.get('dateTimeAnjam', None) - #return HttpResponse(float(dateTimeAnjam+".0")) - try: - dateTimeAnjam = datetime.datetime.fromtimestamp(int(dateTimeAnjam)/1e3) - except: - pass - desc = request.POST.get('desc', None) - userID = request.POST.get('userID', None) - is_done = request.POST.get('is_done', None) - result = request.POST.get('result', None) - FinishDateTime = request.POST.get('FinishDateTime', None) - try: - FinishDateTime = datetime.datetime.fromtimestamp(int(FinishDateTime)/1e3) - except: - pass - - customer_obj = Customer.objects.get(id=int(c_id)) - newAction = Action() - newAction.actionType = actionType - newAction.actionDateTime = dateTimeAnjam - newAction.desc = desc - newAction.forUser = User.objects.get(id=int(userID)) - newAction.customer = customer_obj - if is_done: - newAction.status = 'finish' - newAction.finishDateTime = FinishDateTime - newAction.result = result - else: - newAction.status = 'waite' - newAction.save() - - if newAction.status == 'finish' and newAction.actionType == 'bazdid': - customer_obj.last_bazdid_dt = newAction.finishDateTime - customer_obj.save() - - return redirect('/panel/customer/'+str(c_id)+'/action') - - -@login_required(login_url='/panel/p_login/') -def ActionList(request): - actions = Action.objects.filter(forUser__id=request.user.id, status='waite').order_by("-createdDT") - allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') - data = {'actions': actions, 'allUsers': allUsers} - return render(request, 'admin_panel/ActionList.html', data) - -@login_required(login_url='/panel/p_login/') -def ActionListUser(request, u_id): - actions = Action.objects.filter(forUser__id=u_id, status='waite').order_by("-createdDT") - allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') - data = {'actions': actions, 'allUsers': allUsers} - return render(request, 'admin_panel/ActionList.html', data) - -@login_required(login_url='/panel/p_login/') -def customerEditAction(request ,c_id, action_id): - - actionType = request.POST.get('actionType', None) - dateTimeAnjam = request.POST.get('dateTimeAnjam', None) - print("ok") - #return HttpResponse(float(dateTimeAnjam+".0")) - try: - dateTimeAnjam = datetime.datetime.fromtimestamp(int(dateTimeAnjam)/1e3) - except: - pass - desc = request.POST.get('desc', None) - userID = request.POST.get('userID', None) - is_done = request.POST.get('is_done', None) - result = request.POST.get('result', None) - FinishDateTime = request.POST.get('FinishDateTime', None) - try: - FinishDateTime = datetime.datetime.fromtimestamp(int(FinishDateTime)/1e3) - except: - pass - - customer_obj = Customer.objects.get(id=int(c_id)) - newAction = Action.objects.get(id=action_id) - newAction.actionType = actionType - newAction.actionDateTime = dateTimeAnjam - newAction.desc = desc - newAction.forUser = User.objects.get(id=int(userID)) - newAction.customer = customer_obj - if is_done: - newAction.status = 'finish' - newAction.finishDateTime = FinishDateTime - newAction.result = result - else: - newAction.status = 'waite' - newAction.save() - - if newAction.status == 'finish' and newAction.actionType == 'bazdid': - customer_obj.last_bazdid_dt = newAction.finishDateTime - customer_obj.save() - #return redirect('/panel/customer/'+str(c_id)+'/action') - return redirect(request.META.get('HTTP_REFERER', 'redirect_if_referer_not_found')) - - -@login_required(login_url='/panel/p_login/') -def ActionListAll(request): - actions = Action.objects.filter().order_by("-id") - allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') - data = {'actions': actions, 'allUsers': allUsers} - return render(request, 'admin_panel/ActionList.html', data) - -@login_required(login_url='/panel/p_login/') -def ActionListToday(request): - startTodayDT= datetime.datetime.today().strftime('%Y-%m-%d 00:00:00') - endTodayDT= datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') - #startTodayDT = datetime.datetime.strptime(startTodayDT, '%Y-%m-%d-00:00:00') - #endTodayDT = datetime.datetime.strptime(endTodayDT, '%Y-%m-%d-23:59:59') - #return HttpResponse(todayDT) - actions = Action.objects.filter(actionDateTime__gte=startTodayDT,actionDateTime__lte=endTodayDT, forUser__id=request.user.id, status='waite').order_by("-actionDateTime")[:50] - allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') - data = {'actions': actions, 'allUsers': allUsers} - return render(request, 'admin_panel/ActionList.html', data) - -@login_required(login_url='/panel/p_login/') -def ActionListUserToday(request, u_id): - dateTimeAction = request.GET.get('dateTime', None) - status = request.GET.get('status', None) - unixADT = dateTimeAction - if dateTimeAction: - dateTimeAction = datetime.datetime.fromtimestamp(int(dateTimeAction)/1e3) - startTodayDT = dateTimeAction.strftime('%Y-%m-%d 00:00:00') - endTodayDT= dateTimeAction.strftime('%Y-%m-%d 23:59:59') - else: - startTodayDT= datetime.datetime.today().strftime('%Y-%m-%d 00:00:00') - endTodayDT= datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') - #startTodayDT = datetime.datetime.strptime(startTodayDT, '%Y-%m-%d-00:00:00') - #endTodayDT = datetime.datetime.strptime(endTodayDT, '%Y-%m-%d-23:59:59') - #return HttpResponse(todayDT) - if status == 'waite' or status == None or status == '' or status == ' ': - status = 'waite' - actions = Action.objects.filter(actionDateTime__gte=startTodayDT,actionDateTime__lte=endTodayDT, forUser__id=u_id, status=status).order_by("-actionDateTime")[:50] - actionPr = Action.objects.filter(actionDateTime__lt=startTodayDT, forUser__id=u_id, status=status).order_by("-actionDateTime")[:200] - elif status == 'finish': - actionPr = None - actions = Action.objects.filter(actionDateTime__gte=startTodayDT,actionDateTime__lte=endTodayDT, forUser__id=u_id, status=status).order_by("-actionDateTime")[:50] - - allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') - data = {'actions': actions, 'allUsers': allUsers, 'u_id': u_id, "unixADT": unixADT, "status": status, 'actionPr': actionPr} - return render(request, 'admin_panel/ActionList.html', data) - -import datetime -from django.db.models import Q -from django.shortcuts import render -from django.contrib.auth.decorators import login_required -from .models import Action - -@login_required(login_url='/panel/p_login/') -def rezayat(request): - statusRezayat = request.GET.get('status', 'waite') - now = datetime.datetime.now() - - # محاسبه بازههای زمانی ۳۰ روز و ۶۰ روز قبل - dt_30_days_ago = now - datetime.timedelta(days=30) - dt_60_days_ago = now - datetime.timedelta(days=60) - - if statusRezayat == 'finish': - # نمایش نظرسنجیهای تعیینتکلیف شده (ثبت شده یا کنسل شده) - actions = Action.objects.exclude(actionType='vosol').filter( - status='finish', - nazarDT__isnull=False - ).order_by("-nazarDT")[:500] - else: - statusRezayat = 'waite' - # نمایش نظرسنجیهای در انتظار با اعمال شرط عدم انقضای زمان - actions = Action.objects.exclude(actionType='vosol').filter( - status='finish', - nazarDT__isnull=True, # نظرسنجی هنوز نهایی نشده - createdDT__gte=dt_60_days_ago # حداکثر ۶۰ روز از ایجاد گذشته باشد - ).filter( - Q(finishDateTime__isnull=True) | Q(finishDateTime__gte=dt_30_days_ago) # حداکثر ۳۰ روز از اتمام گذشته باشد - ).filter( - Q(nextNazarDT__isnull=True) | Q(nextNazarDT__lte=now) # موعد پیگیری رسیده یا تعویقی نداشته باشد - ).order_by("-id")[:500] - - data = {'actions': actions, "status": statusRezayat} - return render(request, 'admin_panel/customerRezayat.html', data) - - -@login_required(login_url='/panel/p_login/') -def rezayatEdit(request, ac_id): - csGrade = request.POST.get('csGrade', None) - csDesc = request.POST.get('csDesc', None) - - if csDesc and csGrade: - action = get_object_or_404(Action, id=ac_id) - - if csGrade == '-1': - # عدم موفقیت: تنظیم nextNazarDT برای ۳ روز بعد (nazarDT پر نمیشود تا نهایی نشود) - action.nazar = csDesc - action.grade = int(csGrade) - action.nextNazarDT = datetime.datetime.now() + datetime.timedelta(days=3) - - elif csGrade == '-2': - # کنسل کردن: پر کردن nazarDT برای خروج کامل از لیست کارهای در انتظار - action.nazar = csDesc - action.grade = int(csGrade) - action.nazarDT = datetime.datetime.now() - action.nextNazarDT = None - - else: - # ثبت امتیاز عادی - action.nazar = csDesc - action.grade = int(csGrade) - action.nazarDT = datetime.datetime.now() - action.nextNazarDT = None - - action.save() - return redirect('/panel/rezayat/') - else: - return HttpResponse('لطفا همه فیلد ها را پر کنید') - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewReportMali', raise_exception=True) -def rezayat_dashboard(request): - # دریافت تمامی نظرسنجیهای ثبت شده معتبر (که تاریخ نظرسنجی دارند) - valid_surveys = Action.objects.filter( - nazarDT__isnull=False, - grade__in=[5, 10, 15, 20] - ) - - # ۱. محاسبات شاخصهای کلیدی (KPIs) - total_surveys = valid_surveys.count() - avg_grade = valid_surveys.aggregate(Avg('grade'))['grade__avg'] or 0 - - # ۲. استخراج دادهها برای نمودار توزیع رضایت - grade_distribution = valid_surveys.values('grade').annotate(count=Count('id')) - chart_dict = {20: 0, 15: 0, 10: 0, 5: 0} - for item in grade_distribution: - g = item['grade'] - if g in chart_dict: - chart_dict[g] = item['count'] - - chart_labels = ['عالی (۲۰)', 'متوسط (۱۵)', 'ضعیف (۱۰)', 'بد (۵)'] - chart_data_list = [chart_dict[20], chart_dict[15], chart_dict[10], chart_dict[5]] - - # ۳. تبدیل امن آرایهها به JSON برای Chart.js - chart_labels_json = json.dumps(chart_labels, ensure_ascii=False) - chart_data_json = json.dumps(chart_data_list) - has_chart_data = sum(chart_data_list) > 0 - - # ۴. واکشی لیست مشتریان نیازمند پیگیری (شامل متوسط ۱۵، ضعیف ۱۰ و بد ۵) - low_score_actions = Action.objects.filter( - nazarDT__isnull=False, - grade__in=[5, 10, 15] # <-- امتیاز ۱۵ (متوسط) نیز اضافه شد - ).order_by('-nazarDT') - - allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') - - context = { - 'total_surveys': total_surveys, - 'avg_grade': round(avg_grade, 1), - 'chart_labels_json': chart_labels_json, - 'chart_data_json': chart_data_json, - 'has_chart_data': has_chart_data, - 'low_score_actions': low_score_actions, - # تعداد کل موارد نیازمند پیگیری (متوسط + ضعیف + بد) - 'unhappy_count': chart_dict[15] + chart_dict[10] + chart_dict[5], - 'allUsers': allUsers, - } - - return render(request, 'admin_panel/report_rezayat.html', context) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -def passCheck(request, articl_id): - - sarresidINC = Sarresid.objects.get(id=articl_id) - user_op = request.user - - desc = request.POST.get('message') - - articleHesabDari2 = Article() - articleHesabDari2.debit = 0 - articleHesabDari2.credit = sarresidINC.price - articleHesabDari2.customer = sarresidINC.customer - articleHesabDari2.factor = sarresidINC.factor - articleHesabDari2.desc = 'وصول چک' + " " + str(sarresidINC.customer.name_family) - if sarresidINC.factor: - articleHesabDari2.desc += " فاکتور شماره: " + str(sarresidINC.factor.id) - articleHesabDari2.nahvePardakht = 'وصول چک' - articleHesabDari2.payStatus = "true" - articleHesabDari2.user = user_op - articleHesabDari2.save() - - sarresidINC.payStatus = "true" - sarresidINC.desc = desc - sarresidINC.save() - - return HttpResponse("ok") - #return redirect(request.META.get('HTTP_REFERER')) - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -@require_POST -def update_check_info(request, sarresid_id): - # دریافت رکورد مورد نظر - sarresid = get_object_or_404(Sarresid, id=sarresid_id) - - # اطمینان از اینکه آیتم حتما چک است - if sarresid.type != 'check': - messages.error(request, "عملیات نامعتبر: این سند چک نیست.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - # دریافت مقادیر فرم با حذف فاصلههای اضافی - check_row_number = request.POST.get('check_row_number', '').strip() - check_sayyad_id = request.POST.get('check_sayyad_id', '').strip() - check_owner_name = request.POST.get('check_owner_name', '').strip() - check_owner_phone = request.POST.get('check_owner_phone', '').strip() - - # اعتبارسنجی فیلدهای اجباری - if not check_row_number or not check_sayyad_id or not check_owner_name: - messages.error(request, "شماره ردیف، شناسه صیادی و نام مالک اجباری است.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - # اعتبارسنجی شناسه صیادی (باید دقیقا ۱۶ رقم عدد باشد) - if not check_sayyad_id.isdigit() or len(check_sayyad_id) != 16: - messages.error(request, "شناسه صیادی باید دقیقاً ۱۶ رقم عدد باشد.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - # اعتبارسنجی شماره تلفن (در صورت وارد شدن باید فقط عدد باشد) - if check_owner_phone and not check_owner_phone.isdigit(): - messages.error(request, "شماره تلفن مالک چک باید فقط شامل اعداد باشد.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - try: - # بروزرسانی اطلاعات - sarresid.check_row_number = check_row_number - sarresid.check_sayyad_id = check_sayyad_id - sarresid.check_owner_name = check_owner_name - sarresid.check_owner_phone = check_owner_phone - # آپدیت فیلد توضیحات با اطلاعات جدید - sarresid.desc = f"صیادی: {check_sayyad_id} | مالک: {check_owner_name} | تلفن: {check_owner_phone or 'ندارد'}" - - sarresid.save() - messages.success(request, "اطلاعات چک با موفقیت ثبت/بروزرسانی شد.") - except Exception as e: - messages.error(request, "خطای سیستمی در بروزرسانی اطلاعات رخ داد.") - - return redirect(request.META.get('HTTP_REFERER', '/')) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -def addSarresid(request, cs_id): - if request.method != 'POST': - return HttpResponseBadRequest("متد ارسالی نامعتبر است.") - - try: - customerObj = get_object_or_404(Customer, id=cs_id) - - # دریافت فیلدهای اصلی - sarrresidUNIX = request.POST.get('n_sarresidDateTime') - sarresidPrice = request.POST.get('n_sarresidPrice') - sarresidType = request.POST.get('n_sarresidType') - - # دریافت و پاکسازی فیلدهای چک (جلوگیری از باگ فاصلههای خالی) - check_row_number = request.POST.get('check_row_number', '').strip() - check_sayyad_id = request.POST.get('check_sayyad_id', '').strip() - check_owner_name = request.POST.get('check_owner_name', '').strip() - check_owner_phone = request.POST.get('check_owner_phone', '').strip() - - # --- لایه اول: اعتبارسنجی فیلدهای پایه --- - if not sarrresidUNIX or not sarresidPrice or not sarresidType: - messages.error(request, "لطفا فیلدهای اصلی (مبلغ، نوع و تاریخ) را پر کنید.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - # --- لایه دوم: اعتبارسنجی دقیق و امنیتی فیلدهای چک --- - if sarresidType == "check": - if not check_row_number or not check_sayyad_id or not check_owner_name: - messages.error(request, "برای ثبت چک، وارد کردن شماره ردیف، شناسه صیادی و نام مالک اجباری است.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - # بررسی ۱۶ رقمی و عددی بودن شناسه صیادی - if not check_sayyad_id.isdigit() or len(check_sayyad_id) != 16: - messages.error(request, "شناسه صیادی باید دقیقاً ۱۶ رقم عدد باشد.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - # بررسی عددی بودن شماره تلفن (در صورت وارد شدن) - if check_owner_phone and not check_owner_phone.isdigit(): - messages.error(request, "شماره تلفن مالک چک باید فقط شامل اعداد باشد.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - # تبدیل نوع دادهها با مدیریت خطا (جلوگیری از کرش سرور 500) - try: - sarResidDateTime01 = datetime.datetime.fromtimestamp(int(sarrresidUNIX) / 1000.0) - price_int = int(sarresidPrice.replace(',', '')) - except ValueError: - messages.error(request, "مقادیر تاریخ یا مبلغ نامعتبر است.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - # --- لایه سوم: ذخیرهسازی اتمیک (تضمین جامعیت دادهها) --- - with transaction.atomic(): - # ۱. ثبت سند حسابداری - articleHesabDariObj = Article() - articleHesabDariObj.debit = price_int - articleHesabDariObj.credit = 0 - articleHesabDariObj.customer = customerObj - articleHesabDariObj.user = request.user - - if sarresidType == "check": - articleHesabDariObj.desc = f"بدهی بابت ثبت چک دستی (صیادی: {check_sayyad_id})" - elif sarresidType == "nesiye": - articleHesabDariObj.desc = "بدهی بابت ثبت نسیه دستی" - - articleHesabDariObj.save() - - # ۲. ثبت سررسید / چک - sarresidINC = Sarresid() - sarresidINC.customer = customerObj - sarresidINC.price = price_int - sarresidINC.payStatus = "false" - sarresidINC.type = sarresidType - sarresidINC.user = request.user - sarresidINC.sarresidDT = sarResidDateTime01 - - if sarresidType == "check": - sarresidINC.check_row_number = check_row_number - sarresidINC.check_sayyad_id = check_sayyad_id - sarresidINC.check_owner_name = check_owner_name - sarresidINC.check_owner_phone = check_owner_phone - sarresidINC.desc = f"صیادی: {check_sayyad_id} | مالک: {check_owner_name} | تلفن: {check_owner_phone or 'ندارد'}" - - sarresidINC.save() - - messages.success(request, "اطلاعات با موفقیت ثبت شد.") - return redirect(request.META.get('HTTP_REFERER', '/')) - - except Exception as e: - logger.error(f"Error in addSarresid: {str(e)}", exc_info=True) - messages.error(request, "خطای سیستمی رخ داد. لطفا مجددا تلاش کنید.") - return redirect(request.META.get('HTTP_REFERER', '/')) - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -def pardakhtNesiye(request, cs_id): - try: - customerObj = Customer.objects.get(id=cs_id) - user_op = request.user - - sarrresidUNIX = request.POST.get('next_sarresidDateTime', None) - sarresidPrice = int(request.POST.get('next_sarresidPrice', None)) - sr_articlID = request.POST.get('sr_articlID', None) - nahvePardakht = request.POST.get('nahvePardakht', None) - desc_sar = request.POST.get('desc_sar', None) - - sarResidDateTime01 = datetime.datetime.fromtimestamp(int(sarrresidUNIX)/1000.0) - - SarresidObj = Sarresid.objects.get(id=sr_articlID) - #return HttpResponse(sarresidPrice) - debitNow = SarresidObj.price - sarresidPrice - #return HttpResponse(debitNow) - - if debitNow==0: - #توسیه بدهی بخورد - SarresidObj.price = 0 - SarresidObj.payStatus = "true" - elif debitNow >= 1: - SarresidObj.price = debitNow - SarresidObj.sarresidDT = sarResidDateTime01 - else: - return HttpResponse("خطا در مورد مبلغ") - SarresidObj.save() - - - if str(nahvePardakht) == 'naghd': - nahvePardakht = 'نقد' - elif str(nahvePardakht) == 'kartbekart': - nahvePardakht = 'کارت به کارت' - elif str(nahvePardakht) == 'kartkhan': - nahvePardakht = 'کارت خوان' - elif str(nahvePardakht) == 'takhfif': - nahvePardakht = 'تخفیف' - elif str(nahvePardakht) == 'check': - nahvePardakht = 'چک' - - articleHesabDariObj = Article() - articleHesabDariObj.debit = 0 - articleHesabDariObj.credit = int(sarresidPrice) - - if desc_sar: - articleHesabDariObj.desc = "پرداختی بابت نسیه" + " | " + desc_sar - else: - articleHesabDariObj.desc = "پرداختی بابت نسیه" - - articleHesabDariObj.customer = customerObj - articleHesabDariObj.nahvePardakht = nahvePardakht - articleHesabDariObj.user = user_op - articleHesabDariObj.save() - - return redirect(request.META.get('HTTP_REFERER')) - - except: - return HttpResponse("خطا در ثبت ") - -# ===================================================================== -# توابع کمکی و منطق استعلام چک (برگرفته از اسکریپتهای شما) -# ===================================================================== - -def solve_base64_captcha(base64_string: str) -> str: - try: - if ',' in base64_string: - base64_string = base64_string.split(',')[1] - - image_bytes = base64.b64decode(base64_string) - np_arr = np.frombuffer(image_bytes, np.uint8) - img = cv2.imdecode(np_arr, cv2.IMREAD_COLOR) - - if img is None: - return "" - - gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) - blur = cv2.medianBlur(gray, 3) - _, thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) - - kernel = np.ones((2, 2), np.uint8) - cleaned_img = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=1) - final_img = cv2.bitwise_not(cleaned_img) - - success, encoded_image = cv2.imencode('.png', final_img) - if not success: - return "" - - processed_bytes = encoded_image.tobytes() - ocr = ddddocr.DdddOcr(show_ad=False) - extracted_text = ocr.classification(processed_bytes) - - numbers = re.findall(r'\d+', extracted_text) - if len(numbers) >= 2: - num1, num2 = int(numbers[0]), int(numbers[1]) - if '+' in extracted_text: - ans = num1 + num2 - elif '-' in extracted_text: - ans = num1 - num2 - elif '*' in extracted_text or 'x' in extracted_text.lower(): - ans = num1 * num2 - else: - ans = num1 + num2 - - return str(ans) - return "" - except Exception: - return "" - -def parse_cheque_result_html(html_content: str) -> dict: - sayad_id = re.search(r'شناسه\s*?\s*(\d+)\s*?', html_content) - owner_name = re.search(r'متعلق به\s*?\s*(.*?)\s*?\s*می باشد', html_content) - validity_date = re.search(r'تا تاریخ\s*?\s*([\d/]+)\s*?', html_content) - status = re.search(r'در وضعیت\s*?\s*(.*?)\s*?\s*در پایگاه', html_content) - - clean_full_text = re.sub(r'<[^>]+>', '', html_content).strip() - - return { - "success": True, - "data": { - "sayad_id": sayad_id.group(1) if sayad_id else "", - "owner_name": owner_name.group(1).strip() if owner_name else "", - "validity_date": validity_date.group(1) if validity_date else "", - "status": status.group(1).strip() if status else "", - "raw_message": clean_full_text - }, - "error": None - } - -async def run_cbi_sayad_inquiry_logic(sayad_id: str, max_retries: int = 7) -> str: - lightpanda_url = os.environ.get("LIGHTPANDA_URL") or "ws://127.0.0.1:9222" - async with async_playwright() as p: - try: - browser = await p.chromium.connect_over_cdp(lightpanda_url) - except Exception as e: - return json.dumps({"success": False, "data": None, "error": f"عدم اتصال به Lightpanda: {str(e)}"}) - - for attempt in range(1, max_retries + 1): - context = await browser.new_context(ignore_https_errors=True, bypass_csp=True) - page = await context.new_page() - - try: - url = "https://cbi.ir/EstelamSayad/19689.aspx" - await page.goto(url, wait_until="domcontentloaded", timeout=20000) - - captcha_selector = "#ctl00_ucBody_ucContent_ctl00_imgcpatcha" - await page.wait_for_selector(captcha_selector, state="visible", timeout=15000) - await asyncio.sleep(1) - - base64_src = await page.locator(captcha_selector).get_attribute("src") - viewstate = await page.locator("#__VIEWSTATE").get_attribute("value") or "" - viewstate_gen = await page.locator("#__VIEWSTATEGENERATOR").get_attribute("value") or "453B48D8" - - if not base64_src or not viewstate: - await context.close() - continue - - captcha_answer = solve_base64_captcha(base64_src) - if not captcha_answer: - await context.close() - continue - - ajax_raw_response = await page.evaluate(""" - async ({ sayadId, captchaAns, viewState, viewStateGen }) => { - try { - const formData = new URLSearchParams(); - formData.append('ctl00$ucBody$ucContent$ctl00$ScriptManager1', 'ctl00$ucBody$ucContent$ctl00$UpdatePanel1|ctl00$ucBody$ucContent$ctl00$btnSearch'); - formData.append('__EVENTTARGET', ''); - formData.append('__EVENTARGUMENT', ''); - formData.append('__VIEWSTATE', viewState); - formData.append('__VIEWSTATEGENERATOR', viewStateGen); - formData.append('__VIEWSTATEENCRYPTED', ''); - formData.append('ctl00$ucHeader$txtQuickSearch', ''); - formData.append('ctl00$ucBody$ucContent$ctl00$txtChequeNumber', sayadId); - formData.append('ctl00$ucBody$ucContent$ctl00$txtCaptchaInput', captchaAns); - formData.append('__ASYNCPOST', 'true'); - formData.append('ctl00$ucBody$ucContent$ctl00$btnSearch', 'استعلام چک صیادی'); - - const response = await fetch(window.location.href, { - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', - 'X-Requested-With': 'XMLHttpRequest', - 'Cache-Control': 'no-cache' - }, - body: formData.toString() - }); - return await response.text(); - } catch (err) { - return 'FETCH_ERROR: ' + err.message; - } - } - """, {'sayadId': sayad_id, 'captchaAns': captcha_answer, 'viewState': viewstate, 'viewStateGen': viewstate_gen}) - - if "FETCH_ERROR:" in ajax_raw_response: - await context.close() - await asyncio.sleep(1) - continue - - error_match = re.search(r'id="ctl00_ucBody_ucContent_ctl00_lblError"[^>]*>(.*?)', ajax_raw_response, re.DOTALL) - if error_match and error_match.group(1).strip(): - clean_error = re.sub(r'<[^>]+>', '', error_match.group(1)).strip() - if "عبارت محاسباتی" in clean_error: - await context.close() - continue - else: - await context.close() - await browser.close() - return json.dumps({"success": False, "data": None, "error": clean_error}) - - result_match = re.search(r'id="ctl00_ucBody_ucContent_ctl00_lblChequeNumberResult"[^>]*>(.*?)', ajax_raw_response, re.DOTALL) - if result_match: - raw_html = result_match.group(1) - parsed_result = parse_cheque_result_html(raw_html) - await context.close() - await browser.close() - return json.dumps(parsed_result) - - await context.close() - except Exception: - await context.close() - await asyncio.sleep(1) - - await browser.close() - return json.dumps({"success": False, "data": None, "error": "استعلام ناموفق بود (خطای شبکه یا تشخیص کپچا)"}) - - -async def run_bpi_cheque_inquiry_logic(national_id: str, sayad_id: str, id_type: int = 1): - lightpanda_url = os.environ.get("LIGHTPANDA_URL") or "ws://127.0.0.1:9222" - async with async_playwright() as p: - try: - browser = await p.chromium.connect_over_cdp(lightpanda_url) - except Exception as e: - return {"success": False, "error": f"عدم اتصال به مرورگر Lightpanda: {str(e)}"} - - context = await browser.new_context() - page = await context.new_page() - - try: - await page.goto("https://vbank.bpi.ir/public/inquiries/inquiry-bounced-cheques", wait_until="domcontentloaded", timeout=20000) - api_url = f"https://sec.bpi.ir/prls/api/v1/inquiry/chequeStatus?IdCode={national_id}&IdType={id_type}&SayadId={sayad_id}" - - response = await context.request.get( - api_url, - headers={ - "Referer": "https://vbank.bpi.ir/public/inquiries/inquiry-bounced-cheques", - "Accept": "application/json, text/plain, */*" - } - ) - - if response.ok: - data = await response.json() - return {"success": True, "data": data} - else: - error_text = await response.text() - return {"success": False, "error": f"سرور خطا برگرداند (کد {response.status}): {error_text}"} - - except Exception as e: - return {"success": False, "error": f"خطایی در فرآیند استعلام رخ داد: {str(e)}"} - finally: - await context.close() - await browser.close() - - -# ===================================================================== -# View های مربوط به استعلام (API) -# ===================================================================== - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -def api_check_status_inquiry(request): - """ - استعلام وضعیت چک از بانک مرکزی - پارامتر ورودی: sayad_id (GET) - """ - sayad_id = request.GET.get('sayad_id', '').strip() - - if not sayad_id or not sayad_id.isdigit() or len(sayad_id) != 16: - return JsonResponse({"success": False, "error": "شناسه صیادی باید دقیقاً ۱۶ رقم باشد."}) - - try: - # اجرای تابع Async به صورت Sync - result_json_str = async_to_sync(run_cbi_sayad_inquiry_logic)(sayad_id) - # تبدیل رشته جیسون به دیکشنری برای ارسال مجدد با JsonResponse - result_data = json.loads(result_json_str) - return JsonResponse(result_data) - except Exception as e: - logger.error(f"Error in CBI Check Status Inquiry: {str(e)}", exc_info=True) - return JsonResponse({"success": False, "error": "خطای سرور در برقراری ارتباط با بانک مرکزی."}) - - -@login_required(login_url='/panel/p_login/') -@permission_required('admin_panel.ViewStore', raise_exception=True) -def api_check_sabt_inquiry(request): - """ - استعلام ثبت چک از بانک پاسارگاد - پارامترهای ورودی: sayad_id, national_id, id_type (GET) - """ - sayad_id = request.GET.get('sayad_id', '').strip() - national_id = request.GET.get('national_id', '').strip() - id_type = _safe_int(request.GET.get('id_type', 1)) # عدد 1 حقیقی، 2 حقوقی - - # اگر کدملی از فرانتاند خالی ارسال شد، از یک کدملی پیشفرض استفاده میکنیم - if not national_id: - national_id = "1219968218" - - if not sayad_id: - return JsonResponse({"success": False, "error": "شناسه صیادی برای استعلام ثبت الزامی است."}) - - try: - # اجرای تابع Async به صورت Sync - result_data = async_to_sync(run_bpi_cheque_inquiry_logic)(national_id, sayad_id, id_type) - return JsonResponse(result_data) - except Exception as e: - logger.error(f"Error in BPI Check Registration Inquiry: {str(e)}", exc_info=True) - return JsonResponse({"success": False, "error": "خطای سرور در برقراری ارتباط با سامانه بانک."}) \ No newline at end of file diff --git a/admin_panel/views/__init__.py b/admin_panel/views/__init__.py new file mode 100644 index 0000000..a74b2b5 --- /dev/null +++ b/admin_panel/views/__init__.py @@ -0,0 +1,23 @@ +""" +پکیج ویوهای اپ admin_panel. + +این پکیج جایگزین فایل تکپارچهٔ سابق `admin_panel/views.py` شده است. هر ویو در ماژول +دامنهای مربوط به خود قرار گرفته و در اینجا همهٔ آنها re-export میشوند تا مصرفکنندهٔ +فعلی (`from . import views` در urls.py) بدون هیچ تغییری به `views.X` دسترسی داشته باشد. +""" + +from ._helpers import ( # noqa: F401 + logger, + InventoryException, + _safe_int, + _parse_jalali_date, + _parse_timestamp, +) + +from .auth import * # noqa: F401,F403 +from .customers import * # noqa: F401,F403 +from .factors import * # noqa: F401,F403 +from .store import * # noqa: F401,F403 +from .finance import * # noqa: F401,F403 +from .actions import * # noqa: F401,F403 +from .cheque_inquiry import * # noqa: F401,F403 diff --git a/admin_panel/views/_helpers.py b/admin_panel/views/_helpers.py new file mode 100644 index 0000000..596a4a3 --- /dev/null +++ b/admin_panel/views/_helpers.py @@ -0,0 +1,49 @@ +"""توابع و ابزارهای مشترک لایهٔ ویوها.""" +import datetime +import logging + +from django.utils import timezone +from persiantools.jdatetime import JalaliDate +from persiantools import digits + +logger = logging.getLogger(__name__) + + +class InventoryException(Exception): + """خطای اختصاصی برای کنترل موجودی انبار""" + pass + + +def _safe_int(value, default=0): + """تابع امن برای تبدیل مقادیر دریافتی از جاوااسکریپت به عدد""" + if value is None: + return default + try: + clean_val = str(value).strip() + return int(clean_val) if clean_val else default + except (ValueError, TypeError): + return default + + +def _parse_jalali_date(date_str): + """تبدیل امن تاریخ ارسالی از pDatepicker به میلادی""" + if not date_str or not str(date_str).strip(): + return None + try: + clean_date = digits.fa_to_en(digits.ar_to_fa(str(date_str).strip())) + y, m, d = map(int, clean_date.split("/")) + return JalaliDate(y, m, d).to_gregorian() + except Exception as e: + logger.warning(f"Error parsing Jalali date '{date_str}': {e}") + return None + + +def _parse_timestamp(ts_value): + """تبدیل یونیکس تایماستمپهای ارسالی از جاوااسکریپت""" + if not ts_value: + return None + try: + # تبدیل میلیثانیه جاوااسکریپت به ثانیه پایتون + return datetime.datetime.fromtimestamp(int(ts_value) / 1000.0, tz=timezone.get_current_timezone()) + except (ValueError, TypeError): + return None diff --git a/admin_panel/views/actions.py b/admin_panel/views/actions.py new file mode 100644 index 0000000..072abc5 --- /dev/null +++ b/admin_panel/views/actions.py @@ -0,0 +1,263 @@ +import datetime + +from django.db.models import Q +from django.shortcuts import render, redirect, get_object_or_404 +from django.http import HttpResponse +from django.contrib.auth.models import User +from django.contrib.auth.decorators import login_required + +from ..models import Action, Customer + + +@login_required(login_url='/panel/p_login/') +def customerAction(request, c_id): + # استفاده از get_object_or_404 برای امنیت بیشتر + customer = get_object_or_404(Customer, id=c_id) + + # دریافت پارامترهای فیلتر از URL (پیشفرض: all) + filter_type = request.GET.get('actionType', 'all') + filter_status = request.GET.get('status', 'all') + + # کوئری پایه برای اقدامات این مشتری + actions = Action.objects.filter(customer=customer) + + # اعمال فیلتر بر اساس نوع اقدام (بازدید، نصب و ...) + if filter_type != 'all': + actions = actions.filter(actionType=filter_type) + + # اعمال فیلتر بر اساس وضعیت (انجام شده، در انتظار و ...) + if filter_status != 'all': + actions = actions.filter(status=filter_status) + + # مرتبسازی نزولی بر اساس تاریخ ایجاد + actions = actions.order_by("-createdDT") + + allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') + + data = { + 'customer': customer, + 'actions': actions, + 'allUsers': allUsers, + # ارسال مقادیر فیلتر به قالب برای حفظ وضعیت انتخابشده در دراپداونها + 'filter_type': filter_type, + 'filter_status': filter_status + } + + return render(request, 'admin_panel/customerAction.html', data) + +@login_required(login_url='/panel/p_login/') +def customerNazar(request ,c_id): + customer = Customer.objects.get(id=c_id) + actions = Action.objects.filter(customer=customer, nazarDT__isnull=False).order_by("-createdDT") + allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') + data = {'customer': customer, 'actions': actions, 'allUsers': allUsers} + return render(request, 'admin_panel/customer/nazar.html', data) + +@login_required(login_url='/panel/p_login/') +def customerNewAction(request ,c_id): + actionType = request.POST.get('actionType', None) + dateTimeAnjam = request.POST.get('dateTimeAnjam', None) + #return HttpResponse(float(dateTimeAnjam+".0")) + try: + dateTimeAnjam = datetime.datetime.fromtimestamp(int(dateTimeAnjam)/1e3) + except: + pass + desc = request.POST.get('desc', None) + userID = request.POST.get('userID', None) + is_done = request.POST.get('is_done', None) + result = request.POST.get('result', None) + FinishDateTime = request.POST.get('FinishDateTime', None) + try: + FinishDateTime = datetime.datetime.fromtimestamp(int(FinishDateTime)/1e3) + except: + pass + + customer_obj = Customer.objects.get(id=int(c_id)) + newAction = Action() + newAction.actionType = actionType + newAction.actionDateTime = dateTimeAnjam + newAction.desc = desc + newAction.forUser = User.objects.get(id=int(userID)) + newAction.customer = customer_obj + if is_done: + newAction.status = 'finish' + newAction.finishDateTime = FinishDateTime + newAction.result = result + else: + newAction.status = 'waite' + newAction.save() + + if newAction.status == 'finish' and newAction.actionType == 'bazdid': + customer_obj.last_bazdid_dt = newAction.finishDateTime + customer_obj.save() + + return redirect('/panel/customer/'+str(c_id)+'/action') + + +@login_required(login_url='/panel/p_login/') +def ActionList(request): + actions = Action.objects.filter(forUser__id=request.user.id, status='waite').order_by("-createdDT") + allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') + data = {'actions': actions, 'allUsers': allUsers} + return render(request, 'admin_panel/ActionList.html', data) + +@login_required(login_url='/panel/p_login/') +def ActionListUser(request, u_id): + actions = Action.objects.filter(forUser__id=u_id, status='waite').order_by("-createdDT") + allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') + data = {'actions': actions, 'allUsers': allUsers} + return render(request, 'admin_panel/ActionList.html', data) + +@login_required(login_url='/panel/p_login/') +def customerEditAction(request ,c_id, action_id): + + actionType = request.POST.get('actionType', None) + dateTimeAnjam = request.POST.get('dateTimeAnjam', None) + print("ok") + #return HttpResponse(float(dateTimeAnjam+".0")) + try: + dateTimeAnjam = datetime.datetime.fromtimestamp(int(dateTimeAnjam)/1e3) + except: + pass + desc = request.POST.get('desc', None) + userID = request.POST.get('userID', None) + is_done = request.POST.get('is_done', None) + result = request.POST.get('result', None) + FinishDateTime = request.POST.get('FinishDateTime', None) + try: + FinishDateTime = datetime.datetime.fromtimestamp(int(FinishDateTime)/1e3) + except: + pass + + customer_obj = Customer.objects.get(id=int(c_id)) + newAction = Action.objects.get(id=action_id) + newAction.actionType = actionType + newAction.actionDateTime = dateTimeAnjam + newAction.desc = desc + newAction.forUser = User.objects.get(id=int(userID)) + newAction.customer = customer_obj + if is_done: + newAction.status = 'finish' + newAction.finishDateTime = FinishDateTime + newAction.result = result + else: + newAction.status = 'waite' + newAction.save() + + if newAction.status == 'finish' and newAction.actionType == 'bazdid': + customer_obj.last_bazdid_dt = newAction.finishDateTime + customer_obj.save() + #return redirect('/panel/customer/'+str(c_id)+'/action') + return redirect(request.META.get('HTTP_REFERER', 'redirect_if_referer_not_found')) + + +@login_required(login_url='/panel/p_login/') +def ActionListAll(request): + actions = Action.objects.filter().order_by("-id") + allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') + data = {'actions': actions, 'allUsers': allUsers} + return render(request, 'admin_panel/ActionList.html', data) + +@login_required(login_url='/panel/p_login/') +def ActionListToday(request): + startTodayDT= datetime.datetime.today().strftime('%Y-%m-%d 00:00:00') + endTodayDT= datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') + #startTodayDT = datetime.datetime.strptime(startTodayDT, '%Y-%m-%d-00:00:00') + #endTodayDT = datetime.datetime.strptime(endTodayDT, '%Y-%m-%d-23:59:59') + #return HttpResponse(todayDT) + actions = Action.objects.filter(actionDateTime__gte=startTodayDT,actionDateTime__lte=endTodayDT, forUser__id=request.user.id, status='waite').order_by("-actionDateTime")[:50] + allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') + data = {'actions': actions, 'allUsers': allUsers} + return render(request, 'admin_panel/ActionList.html', data) + +@login_required(login_url='/panel/p_login/') +def ActionListUserToday(request, u_id): + dateTimeAction = request.GET.get('dateTime', None) + status = request.GET.get('status', None) + unixADT = dateTimeAction + if dateTimeAction: + dateTimeAction = datetime.datetime.fromtimestamp(int(dateTimeAction)/1e3) + startTodayDT = dateTimeAction.strftime('%Y-%m-%d 00:00:00') + endTodayDT= dateTimeAction.strftime('%Y-%m-%d 23:59:59') + else: + startTodayDT= datetime.datetime.today().strftime('%Y-%m-%d 00:00:00') + endTodayDT= datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') + #startTodayDT = datetime.datetime.strptime(startTodayDT, '%Y-%m-%d-00:00:00') + #endTodayDT = datetime.datetime.strptime(endTodayDT, '%Y-%m-%d-23:59:59') + #return HttpResponse(todayDT) + if status == 'waite' or status == None or status == '' or status == ' ': + status = 'waite' + actions = Action.objects.filter(actionDateTime__gte=startTodayDT,actionDateTime__lte=endTodayDT, forUser__id=u_id, status=status).order_by("-actionDateTime")[:50] + actionPr = Action.objects.filter(actionDateTime__lt=startTodayDT, forUser__id=u_id, status=status).order_by("-actionDateTime")[:200] + elif status == 'finish': + actionPr = None + actions = Action.objects.filter(actionDateTime__gte=startTodayDT,actionDateTime__lte=endTodayDT, forUser__id=u_id, status=status).order_by("-actionDateTime")[:50] + + allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') + data = {'actions': actions, 'allUsers': allUsers, 'u_id': u_id, "unixADT": unixADT, "status": status, 'actionPr': actionPr} + return render(request, 'admin_panel/ActionList.html', data) + +@login_required(login_url='/panel/p_login/') +def rezayat(request): + statusRezayat = request.GET.get('status', 'waite') + now = datetime.datetime.now() + + # محاسبه بازههای زمانی ۳۰ روز و ۶۰ روز قبل + dt_30_days_ago = now - datetime.timedelta(days=30) + dt_60_days_ago = now - datetime.timedelta(days=60) + + if statusRezayat == 'finish': + # نمایش نظرسنجیهای تعیینتکلیف شده (ثبت شده یا کنسل شده) + actions = Action.objects.exclude(actionType='vosol').filter( + status='finish', + nazarDT__isnull=False + ).order_by("-nazarDT")[:500] + else: + statusRezayat = 'waite' + # نمایش نظرسنجیهای در انتظار با اعمال شرط عدم انقضای زمان + actions = Action.objects.exclude(actionType='vosol').filter( + status='finish', + nazarDT__isnull=True, # نظرسنجی هنوز نهایی نشده + createdDT__gte=dt_60_days_ago # حداکثر ۶۰ روز از ایجاد گذشته باشد + ).filter( + Q(finishDateTime__isnull=True) | Q(finishDateTime__gte=dt_30_days_ago) # حداکثر ۳۰ روز از اتمام گذشته باشد + ).filter( + Q(nextNazarDT__isnull=True) | Q(nextNazarDT__lte=now) # موعد پیگیری رسیده یا تعویقی نداشته باشد + ).order_by("-id")[:500] + + data = {'actions': actions, "status": statusRezayat} + return render(request, 'admin_panel/customerRezayat.html', data) + + +@login_required(login_url='/panel/p_login/') +def rezayatEdit(request, ac_id): + csGrade = request.POST.get('csGrade', None) + csDesc = request.POST.get('csDesc', None) + + if csDesc and csGrade: + action = get_object_or_404(Action, id=ac_id) + + if csGrade == '-1': + # عدم موفقیت: تنظیم nextNazarDT برای ۳ روز بعد (nazarDT پر نمیشود تا نهایی نشود) + action.nazar = csDesc + action.grade = int(csGrade) + action.nextNazarDT = datetime.datetime.now() + datetime.timedelta(days=3) + + elif csGrade == '-2': + # کنسل کردن: پر کردن nazarDT برای خروج کامل از لیست کارهای در انتظار + action.nazar = csDesc + action.grade = int(csGrade) + action.nazarDT = datetime.datetime.now() + action.nextNazarDT = None + + else: + # ثبت امتیاز عادی + action.nazar = csDesc + action.grade = int(csGrade) + action.nazarDT = datetime.datetime.now() + action.nextNazarDT = None + + action.save() + return redirect('/panel/rezayat/') + else: + return HttpResponse('لطفا همه فیلد ها را پر کنید') diff --git a/admin_panel/views/auth.py b/admin_panel/views/auth.py new file mode 100644 index 0000000..494abf8 --- /dev/null +++ b/admin_panel/views/auth.py @@ -0,0 +1,29 @@ +from django.shortcuts import redirect, render +from django.contrib.auth import authenticate, login, logout + + +def p_login(request): + username = request.POST.get('username', None ) + password = request.POST.get('password', None ) + if username != None and password != None: + if not request.user.is_authenticated: + user = authenticate(request, username=username, password=password) + if user is not None: + login(request, user) + return redirect("/panel/ActionList/"+str(request.user.id)+"/today") + else: + data = {'message': 'یوزنیم یا پسورد اشتباه است'} + return render(request, 'admin_panel/login.html', data) + else: + return redirect("/panel/") + else: + if request.user.is_authenticated: + return redirect("/panel/") + else: + return render(request, 'admin_panel/login.html') + #return logout(request) + + +def p_logout(request): + logout(request) + return redirect("/panel/p_login/") diff --git a/admin_panel/views/cheque_inquiry.py b/admin_panel/views/cheque_inquiry.py new file mode 100644 index 0000000..7623ce9 --- /dev/null +++ b/admin_panel/views/cheque_inquiry.py @@ -0,0 +1,273 @@ +import asyncio +import base64 +import json +import os +import re + +import cv2 +import ddddocr +import numpy as np +from asgiref.sync import async_to_sync +from django.contrib.auth.decorators import login_required, permission_required +from django.http import JsonResponse +from playwright.async_api import async_playwright + +from ._helpers import logger, _safe_int + + +# ===================================================================== +# توابع کمکی و منطق استعلام چک (برگرفته از اسکریپتهای شما) +# ===================================================================== + +def solve_base64_captcha(base64_string: str) -> str: + try: + if ',' in base64_string: + base64_string = base64_string.split(',')[1] + + image_bytes = base64.b64decode(base64_string) + np_arr = np.frombuffer(image_bytes, np.uint8) + img = cv2.imdecode(np_arr, cv2.IMREAD_COLOR) + + if img is None: + return "" + + gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + blur = cv2.medianBlur(gray, 3) + _, thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) + + kernel = np.ones((2, 2), np.uint8) + cleaned_img = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=1) + final_img = cv2.bitwise_not(cleaned_img) + + success, encoded_image = cv2.imencode('.png', final_img) + if not success: + return "" + + processed_bytes = encoded_image.tobytes() + ocr = ddddocr.DdddOcr(show_ad=False) + extracted_text = ocr.classification(processed_bytes) + + numbers = re.findall(r'\d+', extracted_text) + if len(numbers) >= 2: + num1, num2 = int(numbers[0]), int(numbers[1]) + if '+' in extracted_text: + ans = num1 + num2 + elif '-' in extracted_text: + ans = num1 - num2 + elif '*' in extracted_text or 'x' in extracted_text.lower(): + ans = num1 * num2 + else: + ans = num1 + num2 + + return str(ans) + return "" + except Exception: + return "" + +def parse_cheque_result_html(html_content: str) -> dict: + sayad_id = re.search(r'شناسه\s*?\s*(\d+)\s*?', html_content) + owner_name = re.search(r'متعلق به\s*?\s*(.*?)\s*?\s*می باشد', html_content) + validity_date = re.search(r'تا تاریخ\s*?\s*([\d/]+)\s*?', html_content) + status = re.search(r'در وضعیت\s*?\s*(.*?)\s*?\s*در پایگاه', html_content) + + clean_full_text = re.sub(r'<[^>]+>', '', html_content).strip() + + return { + "success": True, + "data": { + "sayad_id": sayad_id.group(1) if sayad_id else "", + "owner_name": owner_name.group(1).strip() if owner_name else "", + "validity_date": validity_date.group(1) if validity_date else "", + "status": status.group(1).strip() if status else "", + "raw_message": clean_full_text + }, + "error": None + } + +async def run_cbi_sayad_inquiry_logic(sayad_id: str, max_retries: int = 7) -> str: + lightpanda_url = os.environ.get("LIGHTPANDA_URL") or "ws://127.0.0.1:9222" + async with async_playwright() as p: + try: + browser = await p.chromium.connect_over_cdp(lightpanda_url) + except Exception as e: + return json.dumps({"success": False, "data": None, "error": f"عدم اتصال به Lightpanda: {str(e)}"}) + + for attempt in range(1, max_retries + 1): + context = await browser.new_context(ignore_https_errors=True, bypass_csp=True) + page = await context.new_page() + + try: + url = "https://cbi.ir/EstelamSayad/19689.aspx" + await page.goto(url, wait_until="domcontentloaded", timeout=20000) + + captcha_selector = "#ctl00_ucBody_ucContent_ctl00_imgcpatcha" + await page.wait_for_selector(captcha_selector, state="visible", timeout=15000) + await asyncio.sleep(1) + + base64_src = await page.locator(captcha_selector).get_attribute("src") + viewstate = await page.locator("#__VIEWSTATE").get_attribute("value") or "" + viewstate_gen = await page.locator("#__VIEWSTATEGENERATOR").get_attribute("value") or "453B48D8" + + if not base64_src or not viewstate: + await context.close() + continue + + captcha_answer = solve_base64_captcha(base64_src) + if not captcha_answer: + await context.close() + continue + + ajax_raw_response = await page.evaluate(""" + async ({ sayadId, captchaAns, viewState, viewStateGen }) => { + try { + const formData = new URLSearchParams(); + formData.append('ctl00$ucBody$ucContent$ctl00$ScriptManager1', 'ctl00$ucBody$ucContent$ctl00$UpdatePanel1|ctl00$ucBody$ucContent$ctl00$btnSearch'); + formData.append('__EVENTTARGET', ''); + formData.append('__EVENTARGUMENT', ''); + formData.append('__VIEWSTATE', viewState); + formData.append('__VIEWSTATEGENERATOR', viewStateGen); + formData.append('__VIEWSTATEENCRYPTED', ''); + formData.append('ctl00$ucHeader$txtQuickSearch', ''); + formData.append('ctl00$ucBody$ucContent$ctl00$txtChequeNumber', sayadId); + formData.append('ctl00$ucBody$ucContent$ctl00$txtCaptchaInput', captchaAns); + formData.append('__ASYNCPOST', 'true'); + formData.append('ctl00$ucBody$ucContent$ctl00$btnSearch', 'استعلام چک صیادی'); + + const response = await fetch(window.location.href, { + method: 'POST', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', + 'X-Requested-With': 'XMLHttpRequest', + 'Cache-Control': 'no-cache' + }, + body: formData.toString() + }); + return await response.text(); + } catch (err) { + return 'FETCH_ERROR: ' + err.message; + } + } + """, {'sayadId': sayad_id, 'captchaAns': captcha_answer, 'viewState': viewstate, 'viewStateGen': viewstate_gen}) + + if "FETCH_ERROR:" in ajax_raw_response: + await context.close() + await asyncio.sleep(1) + continue + + error_match = re.search(r'id="ctl00_ucBody_ucContent_ctl00_lblError"[^>]*>(.*?)', ajax_raw_response, re.DOTALL) + if error_match and error_match.group(1).strip(): + clean_error = re.sub(r'<[^>]+>', '', error_match.group(1)).strip() + if "عبارت محاسباتی" in clean_error: + await context.close() + continue + else: + await context.close() + await browser.close() + return json.dumps({"success": False, "data": None, "error": clean_error}) + + result_match = re.search(r'id="ctl00_ucBody_ucContent_ctl00_lblChequeNumberResult"[^>]*>(.*?)', ajax_raw_response, re.DOTALL) + if result_match: + raw_html = result_match.group(1) + parsed_result = parse_cheque_result_html(raw_html) + await context.close() + await browser.close() + return json.dumps(parsed_result) + + await context.close() + except Exception: + await context.close() + await asyncio.sleep(1) + + await browser.close() + return json.dumps({"success": False, "data": None, "error": "استعلام ناموفق بود (خطای شبکه یا تشخیص کپچا)"}) + + +async def run_bpi_cheque_inquiry_logic(national_id: str, sayad_id: str, id_type: int = 1): + lightpanda_url = os.environ.get("LIGHTPANDA_URL") or "ws://127.0.0.1:9222" + async with async_playwright() as p: + try: + browser = await p.chromium.connect_over_cdp(lightpanda_url) + except Exception as e: + return {"success": False, "error": f"عدم اتصال به مرورگر Lightpanda: {str(e)}"} + + context = await browser.new_context() + page = await context.new_page() + + try: + await page.goto("https://vbank.bpi.ir/public/inquiries/inquiry-bounced-cheques", wait_until="domcontentloaded", timeout=20000) + api_url = f"https://sec.bpi.ir/prls/api/v1/inquiry/chequeStatus?IdCode={national_id}&IdType={id_type}&SayadId={sayad_id}" + + response = await context.request.get( + api_url, + headers={ + "Referer": "https://vbank.bpi.ir/public/inquiries/inquiry-bounced-cheques", + "Accept": "application/json, text/plain, */*" + } + ) + + if response.ok: + data = await response.json() + return {"success": True, "data": data} + else: + error_text = await response.text() + return {"success": False, "error": f"سرور خطا برگرداند (کد {response.status}): {error_text}"} + + except Exception as e: + return {"success": False, "error": f"خطایی در فرآیند استعلام رخ داد: {str(e)}"} + finally: + await context.close() + await browser.close() + + +# ===================================================================== +# View های مربوط به استعلام (API) +# ===================================================================== + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +def api_check_status_inquiry(request): + """ + استعلام وضعیت چک از بانک مرکزی + پارامتر ورودی: sayad_id (GET) + """ + sayad_id = request.GET.get('sayad_id', '').strip() + + if not sayad_id or not sayad_id.isdigit() or len(sayad_id) != 16: + return JsonResponse({"success": False, "error": "شناسه صیادی باید دقیقاً ۱۶ رقم باشد."}) + + try: + # اجرای تابع Async به صورت Sync + result_json_str = async_to_sync(run_cbi_sayad_inquiry_logic)(sayad_id) + # تبدیل رشته جیسون به دیکشنری برای ارسال مجدد با JsonResponse + result_data = json.loads(result_json_str) + return JsonResponse(result_data) + except Exception as e: + logger.error(f"Error in CBI Check Status Inquiry: {str(e)}", exc_info=True) + return JsonResponse({"success": False, "error": "خطای سرور در برقراری ارتباط با بانک مرکزی."}) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +def api_check_sabt_inquiry(request): + """ + استعلام ثبت چک از بانک پاسارگاد + پارامترهای ورودی: sayad_id, national_id, id_type (GET) + """ + sayad_id = request.GET.get('sayad_id', '').strip() + national_id = request.GET.get('national_id', '').strip() + id_type = _safe_int(request.GET.get('id_type', 1)) # عدد 1 حقیقی، 2 حقوقی + + # اگر کدملی از فرانتاند خالی ارسال شد، از یک کدملی پیشفرض استفاده میکنیم + if not national_id: + national_id = "1219968218" + + if not sayad_id: + return JsonResponse({"success": False, "error": "شناسه صیادی برای استعلام ثبت الزامی است."}) + + try: + # اجرای تابع Async به صورت Sync + result_data = async_to_sync(run_bpi_cheque_inquiry_logic)(national_id, sayad_id, id_type) + return JsonResponse(result_data) + except Exception as e: + logger.error(f"Error in BPI Check Registration Inquiry: {str(e)}", exc_info=True) + return JsonResponse({"success": False, "error": "خطای سرور در برقراری ارتباط با سامانه بانک."}) diff --git a/admin_panel/views/customers.py b/admin_panel/views/customers.py new file mode 100644 index 0000000..5c16d5a --- /dev/null +++ b/admin_panel/views/customers.py @@ -0,0 +1,463 @@ +import datetime +import os + +from django.db import models +from django.db.models import Sum, Q +from django.shortcuts import redirect, render, get_object_or_404 +from django.core.paginator import Paginator +from django.views.decorators.csrf import csrf_exempt +from django.contrib import messages +from django.contrib.auth.decorators import login_required, permission_required +from persiantools.jdatetime import JalaliDate + +from ..models import (Customer, PhoneNumber, ProductCategory, Product, Factor, + FactorIteam, Article, Sarresid, Action, CacheTable) +from ._helpers import logger, _parse_jalali_date + + +@csrf_exempt +@login_required(login_url='/panel/p_login/') +def customers(request): + searchVal = request.GET.get('searchVal', '') + searchOn = request.GET.get('searchOn', '') + searchStatus = True + full_path = request.get_full_path() + + if searchOn == 'code': + all_customers = Customer.objects.filter(idCode__contains=searchVal).order_by('-create_date') + elif searchOn == 'phone': + all_customers = Customer.objects.filter(Q(phone1__contains=searchVal) | Q(phone2__contains=searchVal) | Q(phone3__contains=searchVal) ).order_by('-create_date') + elif searchOn == 'name': + all_customers = Customer.objects.filter(name_family__contains=searchVal).order_by('-create_date') + elif searchOn == 'address': + all_customers = Customer.objects.filter(address__contains=searchVal).order_by('-create_date') + elif searchOn == 'laghv': + all_customers = Customer.objects.filter(laghv_bazdid=True).order_by('-create_date') + else: + searchStatus = False + all_customers = Customer.objects.filter(is_active=True).order_by('-create_date') + + paginator = Paginator(all_customers, 25) # Show 25 contacts per page. + page_number = request.GET.get('page', None) + all_customers = paginator.get_page(page_number) + + + data = {'customersD': all_customers, 'searchStatus': searchStatus, 'full_path': full_path, 'searchVal': searchVal, 'searchOn':searchOn} + return render(request, 'admin_panel/customers.html', data) + + +@login_required(login_url='/panel/p_login/') +def customersSearch(request, searchVal,searchOn): + searchStatus = True + + if searchOn == 'code': + all_customers = Customer.objects.filter(idCode__contains=searchVal).order_by('-create_date') + elif searchOn == 'phone': + all_customers = Customer.objects.filter(phone1__contains=searchVal).order_by('-create_date') + elif searchOn == 'name': + all_customers = Customer.objects.filter(name_family__contains=searchVal).order_by('-create_date') + elif searchOn == 'address': + all_customers = Customer.objects.filter(address__contains=searchVal).order_by('-create_date') + else: + searchStatus = False + all_customers = Customer.objects.all().order_by('-create_date') + + paginator = Paginator(all_customers, 25) # Show 25 contacts per page. + page_number = request.GET.get('page', None) + all_customers = paginator.get_page(page_number) + + + data = {'customersD': all_customers, 'searchStatus': searchStatus} + return render(request, 'admin_panel/customers.html', data) + +@login_required(login_url='/panel/p_login/') +def customer(request ,c_id): + customer = Customer.objects.get(id=c_id) + categorys = ProductCategory.objects.all() + factorha = Factor.objects.filter(customer__id = c_id) + #all_prd = serializers.serialize("json", all_prda) + #return JsonResponse(all_prd,safe = False) + dateNow = datetime.datetime.now().date + data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorha': factorha} + return render(request, 'admin_panel/customerID.html', data) + +@login_required(login_url='/panel/p_login/') +def customerNew(request ,c_id): + customer = Customer.objects.get(id=c_id) + categorys = ProductCategory.objects.all() + factorha = Factor.objects.filter(customer__id = c_id) + #all_prd = serializers.serialize("json", all_prda) + #return JsonResponse(all_prd,safe = False) + dateNow = datetime.datetime.now().date + data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorha': factorha} + return render(request, 'admin_panel/customerNew.html', data) + + +@login_required(login_url='/panel/p_login/') +def customerNew2(request ,c_id): + customer = get_object_or_404(Customer, id=c_id, is_active=True) + categorys = ProductCategory.objects.all() + factorha = Factor.objects.filter(customer__id = c_id) + + debit = Article.objects.filter(customer=customer).aggregate(Sum('debit'))['debit__sum'] + credit = Article.objects.filter(customer=customer).aggregate(Sum('credit'))['credit__sum'] + mandehesabCs = 0 + try: + if (debit - credit) < 0: + mandehesabCs = abs(debit - credit) + except: + pass + + + #all_prd = serializers.serialize("json", all_prda) + #return JsonResponse(all_prd,safe = False) + dateNow = datetime.datetime.now().date + data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorha': factorha, 'mandehesabCs':mandehesabCs} + return render(request, 'admin_panel/customerNew2.html', data) + + +@login_required(login_url='/panel/p_login/') +def customerFactors(request, c_id): + customer = get_object_or_404(Customer, id=c_id) + categorys = ProductCategory.objects.all() + + # کوئری پایه برای دریافت همه فاکتورهای این مشتری + factor_qs = Factor.objects.filter(customer=customer) + + # دریافت پارامترهای فیلتر و جستجو از آدرس URL + search_query = request.GET.get('search_factor', '').strip() + filter_status = request.GET.get('status', 'all') + filter_type = request.GET.get('type', 'all') + az_tarikh = request.GET.get('az_tarikh', '').strip() + ta_tarikh = request.GET.get('ta_tarikh', '').strip() + + # ۱. اعمال فیلتر جستجو (شناسه فاکتور یا متن توضیحات) + if search_query: + if search_query.isdigit(): + factor_qs = factor_qs.filter(models.Q(id=int(search_query)) | models.Q(desc__icontains=search_query)) + else: + factor_qs = factor_qs.filter(models.Q(desc__icontains=search_query)) + + # ۲. اعمال فیلتر وضعیت پرداخت و حذف نرم + if filter_status != 'all': + if filter_status == 'deleted': + factor_qs = factor_qs.filter(is_active=False) + else: + factor_qs = factor_qs.filter(pay_status=filter_status, is_active=True) + + # ۳. اعمال فیلتر نوع فاکتور (نصب، خدمات، گارانتی) + if filter_type != 'all': + factor_qs = factor_qs.filter(FactorType=filter_type) + + # ۴. اعمال فیلتر تاریخ شروع (از تاریخ) + if az_tarikh: + az_gregorian = _parse_jalali_date(az_tarikh) + if az_gregorian: + az_datetime = datetime.datetime.combine(az_gregorian, datetime.time.min) + factor_qs = factor_qs.filter(create_date__gte=az_datetime) + + # ۵. اعمال فیلتر تاریخ پایان (تا تاریخ) + if ta_tarikh: + ta_gregorian = _parse_jalali_date(ta_tarikh) + if ta_gregorian: + ta_datetime = datetime.datetime.combine(ta_gregorian, datetime.time.max) + factor_qs = factor_qs.filter(create_date__lte=ta_datetime) + + # مرتبسازی بر اساس آخرین تاریخ ایجاد + factorha = factor_qs.order_by('-create_date') + + dateNow = datetime.datetime.now().date + + data = { + 'customer': customer, + 'categorys': categorys, + 'dateNow': dateNow, + 'factorha': factorha, + 'search_query': search_query, + 'filter_status': filter_status, + 'filter_type': filter_type, + 'az_tarikh': az_tarikh, + 'ta_tarikh': ta_tarikh + } + return render(request, 'admin_panel/customerIDFactor.html', data) + +@login_required(login_url='/panel/p_login/') +def customerFactor(request ,c_id, f_id): + customer = Customer.objects.get(id=c_id) + categorys = ProductCategory.objects.all() + factorO = Factor.objects.get(customer=customer, id=f_id) + fiteam = FactorIteam.objects.filter(factor=factorO) + #all_prd = serializers.serialize("json", all_prda) + #return JsonResponse(all_prd,safe = False) + dateNow = datetime.datetime.now().date + data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorO': factorO, 'fiteam': fiteam} + return render(request, 'admin_panel/customerFactor.html', data) + + +def productsJson(request): + from django.core import serializers + from django.http import JsonResponse + all_prd = Product.objects.all() + all_prd = serializers.serialize("json", all_prd) + return JsonResponse(all_prd,safe = False) + +def ActionJson(request, action_id): + from django.core import serializers + from django.http import JsonResponse + AcJson = Action.objects.filter(id=action_id) + AcJson = serializers.serialize("json", AcJson) + return JsonResponse(AcJson,safe = False) + +def CustomerJson(request, c_id): + from django.core import serializers + from django.http import JsonResponse + customerJson = Customer.objects.filter(id=c_id) + customerJson = serializers.serialize("json", customerJson) + return JsonResponse(customerJson,safe = False) + + +@login_required(login_url='/panel/p_login/') +def customersAdd(request): + an_name = request.POST.get('an_name', '') + an_address = request.POST.get('an_address', '') + installDate = request.POST.get('installDate', '') + idnCode = request.POST.get('idnCode', '') + + # دریافت آرایههای عنوان و شماره تلفن + titles_list = request.POST.getlist('phone_titles') + phones_list = request.POST.getlist('phones') + + # ترکیب عنوانها و شمارهها و حذف ردیفهای خالی + valid_phones = [] + for title, phone in zip(titles_list, phones_list): + if phone.strip(): + valid_phones.append({ + 'title': title.strip() if title.strip() else 'تلفن', + 'phone': phone.strip() + }) + + year, month, day = map(int, installDate.split('/')) + installDate_gregorian = JalaliDate(year, month, day).to_gregorian() + + newCs = Customer() + newCs.name_family = an_name + newCs.address = an_address + newCs.installDate = installDate_gregorian + newCs.idCode = idnCode + + # حفظ سازگاری با کدهای قدیمی (ریختن ۳ شماره اول در فیلدهای قدیمی) + newCs.phone1 = valid_phones[0]['phone'] if len(valid_phones) > 0 else '' + newCs.phone2 = valid_phones[1]['phone'] if len(valid_phones) > 1 else '' + newCs.phone3 = valid_phones[2]['phone'] if len(valid_phones) > 2 else '' + newCs.save() + + # ذخیره شمارهها به صورت نامحدود در جدول PhoneNumber + for item in valid_phones: + PhoneNumber.objects.create(customer=newCs, title=item['title'], phone_number=item['phone']) + + return redirect('/panel/customers/') + + +@login_required(login_url='/panel/p_login/') +def customerEdit(request, c_id): + an_name = request.POST.get('an_name', '') + an_address = request.POST.get('an_address', '') + installDate = request.POST.get('installDate', '') + idnCode = request.POST.get('idnCode', '') + laghv_bazdid = request.POST.get('laghv_bazdid', False) + + # دریافت آرایههای عنوان و شماره تلفن + titles_list = request.POST.getlist('phone_titles') + phones_list = request.POST.getlist('phones') + + valid_phones = [] + for title, phone in zip(titles_list, phones_list): + if phone.strip(): + valid_phones.append({ + 'title': title.strip() if title.strip() else 'تلفن', + 'phone': phone.strip() + }) + + year, month, day = map(int, installDate.split('/')) + installDate_gregorian = JalaliDate(year, month, day).to_gregorian() + + newCs = get_object_or_404(Customer, id=c_id) + newCs.name_family = an_name + newCs.address = an_address + newCs.installDate = installDate_gregorian + newCs.idCode = idnCode + newCs.laghv_bazdid = True if laghv_bazdid == 'true' else False + + # آپدیت فیلدهای قدیمی جهت حفظ سازگاری + newCs.phone1 = valid_phones[0]['phone'] if len(valid_phones) > 0 else '' + newCs.phone2 = valid_phones[1]['phone'] if len(valid_phones) > 1 else '' + newCs.phone3 = valid_phones[2]['phone'] if len(valid_phones) > 2 else '' + newCs.save() + + # بروزرسانی جدول بینهایت (حذف قبلیها و درج مجدد) + PhoneNumber.objects.filter(customer=newCs).delete() + for item in valid_phones: + PhoneNumber.objects.create(customer=newCs, title=item['title'], phone_number=item['phone']) + + return redirect('/panel/customer/'+str(c_id)) + +@login_required(login_url='/panel/p_login/') +def entezar(request): + a = datetime.datetime.now() + + searchVal = request.GET.get('searchVal', '') + searchOn = request.GET.get('searchOn', '') + searchStatus = True + full_path = request.get_full_path() + + from django.db.models import Q + + bazdid = os.environ.get('bazdid', 9) + + bazdid = int ( int(bazdid) * 4.3 ) + + dateTime6MonthAgo = a - datetime.timedelta(weeks=bazdid) + ''' customers = Customer.objects.filter(name_family__isnull=False) + m6mbazdid = [] + for customerObj in customers: + try: + actionAa = Action.objects.filter(customer=customerObj, actionType='bazdid', status='finish').last() + if actionAa.status == 'finish': + customerObj.last_bazdid_dt = actionAa.actionDateTime + customerObj.save() + if actionAa.actionDateTime.date() < dateTime6MonthAgo.date(): + m6mbazdid.append(actionAa) + except: + pass ''' + + if searchOn == 'address': + print("addressaddressaddressaddressaddress") + customers_objj = Customer.objects.filter(Q(last_bazdid_dt__lte=dateTime6MonthAgo) | Q(last_bazdid_dt__isnull=True), + installDate__lte=dateTime6MonthAgo, + laghv_bazdid=False, name_family__isnull=False, address__contains=searchVal).order_by('last_bazdid_dt') + else: + searchStatus = False + customers_objj = Customer.objects.filter(Q(last_bazdid_dt__lte=dateTime6MonthAgo) | Q(last_bazdid_dt__isnull=True), + installDate__lte=dateTime6MonthAgo, + laghv_bazdid=False, name_family__isnull=False).order_by('last_bazdid_dt') + + #customers_objj = Customer.objects.filter(name_family__isnull=False, last_bazdid_dt__lte=dateTime6MonthAgo) + + try: + entezar_bazdid = CacheTable.objects.get(key='9mahbazdid') + + entezar_bazdid.value = Customer.objects.filter( + Q(last_bazdid_dt__lte=dateTime6MonthAgo) | Q(last_bazdid_dt__isnull=True), + installDate__lte=dateTime6MonthAgo, + laghv_bazdid=False, name_family__isnull=False).count() + + entezar_bazdid.save() + except: + pass + + paginator = Paginator(customers_objj, 20) # Show 25 contacts per page. + page_number = request.GET.get('page', None) + customerHa = paginator.get_page(page_number) + + return render(request, 'admin_panel/entezar.html', {'customers': customerHa, 'searchStatus': searchStatus, 'full_path': full_path, 'searchVal': searchVal, 'searchOn':searchOn}) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.DelCustomer', raise_exception=True) +def customerDel(request, c_id): + customer_obj = get_object_or_404(Customer, id=c_id) + + try: + # ۱. بررسی وجود هرگونه سابقه مالی/حسابداری (حتی با مانده صفر) + has_articles = Article.objects.filter(customer=customer_obj).exists() + + # ۲. بررسی وجود هرگونه سابقه چک یا نسیه (حتی در صورت پاس شدن و تسویه کامل) + has_sarresids = Sarresid.objects.filter(customer=customer_obj).exists() + + # ۳. بررسی وجود هرگونه فاکتور ثبت شده برای این مشتری + has_factors = Factor.objects.filter(customer=customer_obj).exists() + + # ۴. بررسی وجود هرگونه سابقه اقدام، بازدید یا نظرسنجی + has_actions = Action.objects.filter(customer=customer_obj).exists() + + # ۵. اگر هر کدام از این سوابق وجود داشته باشد، به هیچ عنوان اجازه غیرفعالسازی/حذف نمیدهیم + if has_articles or has_sarresids or has_factors or has_actions: + error_msg = f"عملیات ناموفق: مشتری '{customer_obj.name_family}' به دلیل داشتن سابقه در سیستم قابل حذف نیست! دلایل: " + reasons = [] + + if has_articles: + reasons.append("داشتن تراکنش مالی یا گردش حسابداری") + if has_sarresids: + reasons.append("داشتن سابقه چک یا نسیه (حتی تسویه شده)") + if has_factors: + reasons.append("داشتن فاکتور ثبتشده") + if has_actions: + reasons.append("داشتن سابقه اقدامات، بازدید یا نظرسنجی") + + error_msg += "، ".join(reasons) + "." + + # ارسال پیام خطا به تمپلیت و بازگرداندن کاربر به صفحه قبلی + messages.error(request, error_msg) + return redirect(request.META.get('HTTP_REFERER', '/panel/customers/')) + + # ۶. در صورتی که مشتری کاملاً خام بود و هیچ سابقهای در هیچ بخشی نداشت، حذف میشود + customer_obj.delete() + messages.success(request, f"مشتری '{customer_obj.name_family}' که فاقد هرگونه سابقهای بود، با موفقیت از سیستم حذف شد.") + return redirect('/panel/customers/') + + except Exception as e: + logger.error(f"Error in deleting customer {c_id}: {str(e)}", exc_info=True) + messages.error(request, "خطای سیستمی در بررسی سوابق و حذف مشتری رخ داد.") + return redirect(request.META.get('HTTP_REFERER', '/panel/customers/')) + + +@login_required(login_url='/panel/p_login/') +def customerHesabdari(request ,c_id): + customer = Customer.objects.get(id=c_id) + try: + debit = Article.objects.filter(customer=customer).aggregate(Sum('debit'))['debit__sum'] + credit = Article.objects.filter(customer=customer).aggregate(Sum('credit'))['credit__sum'] + mandehesabCs = debit - credit + articls = Article.objects.filter(customer=customer).order_by('-createdDT') + except: + articls =None + mandehesabCs = 0 + + dateNow = datetime.datetime.now().date + data = {'customer': customer, 'mandehesabCs': mandehesabCs, 'articls': articls} + return render(request, 'admin_panel/customerHesabDari.html', data) + +@login_required(login_url='/panel/p_login/') +def sarresidh(request ,c_id): + customer = Customer.objects.get(id=c_id) + try: + all_sarresid = Sarresid.objects.filter(customer=customer).order_by('-sarresidDT') + except: + all_sarresid = None + + data = {'customer': customer, 'all_sarresid': all_sarresid} + return render(request, 'admin_panel/customerSarresid.html', data) + +@login_required(login_url='/panel/p_login/') +def customerHesabdariAdd(request ,c_id): + user_op = request.user + price = request.POST.get('price', None) + type = request.POST.get('type', None) + typePy = request.POST.get('typePy', None) + desc = request.POST.get('desc', None) + nahvePardakhat = request.POST.get('nahvePardakhat', None) + + newArticl = Article() + newArticl.customer = Customer.objects.get(id=c_id) + newArticl.desc = desc + newArticl.typePy = typePy + if type == 'credit': + newArticl.credit = price + newArticl.debit = 0 + elif type == 'debit': + newArticl.debit = price + newArticl.credit = 0 + newArticl.user = user_op + newArticl.nahvePardakht = nahvePardakhat + newArticl.save() + return redirect('/panel/customer/'+str(c_id)+'/hesabdari') diff --git a/admin_panel/views/factors.py b/admin_panel/views/factors.py new file mode 100644 index 0000000..65793dd --- /dev/null +++ b/admin_panel/views/factors.py @@ -0,0 +1,465 @@ +import json + +from django.db import transaction, connection +from django.db.models import Sum, Q +from django.shortcuts import redirect, get_object_or_404 +from django.http import HttpResponse, HttpResponseBadRequest +from django.views.decorators.http import require_POST +from django.contrib.auth.models import User +from django.contrib.auth.decorators import login_required, permission_required +from persiantools.jdatetime import JalaliDate +from persiantools import digits + +from ..models import (Customer, StoreRoom, Factor, FactorIteam, Product, + ProductInStore, Article, Sarresid) +from ._helpers import logger, _safe_int, _parse_jalali_date, _parse_timestamp, InventoryException + + +@login_required(login_url='/panel/p_login/') +def newFactor(request, c_id): + prdsList = request.POST.get('prdsList', '') + sarResidDate = request.POST.get('sarResidDate', None) + pardakhti = request.POST.get('pardakhti', None) + #return HttpResponse(pardakhti) + if pardakhti: + pardakhti=int(pardakhti) + if pardakhti>=1: + pass + else: + pardakhti = None + #return HttpResponse(sarResidDate) + try: + sarResidDate = digits.fa_to_en(digits.ar_to_fa(sarResidDate)) + #return HttpResponse(sarResidDate) + sarResidDate = sarResidDate.split("/") + #return HttpResponse(sarResidDate[2]) + sarResidDate = JalaliDate(int(sarResidDate[0]), int(sarResidDate[1]), int(sarResidDate[2])).to_gregorian() + #return HttpResponse(sarResidDate) + except: + sarResidDate = None + + #return HttpResponse(sarResidDate[1]) + #sarResidDate = JalaliDate(sarResidDate[0], sarResidDate[1], sarResidDate[2]).to_gregorian() + + payType = request.POST.get('payType', '') + FactorDate = request.POST.get('FactorDate', '') + FactorType = request.POST.get('FactorType', '') + FactorDesc = request.POST.get('FactorDesc', '') + Factorfail = False + customerObj=Customer.objects.get(id=c_id) + storeUser = StoreRoom.objects.get(user__id=request.user.id) + import json + prdsList = json.loads(prdsList) + sum_price = 0 + for prd in prdsList: + if prd['garanty_Esh'] == ' ' or prd['garanty_Esh'] == '' or prd['garanty_Esh'] == None: + sum_price += prd['prd_count'] * prd['price'] + + #return HttpResponse(prd_code) + try: + newFactor = Factor() + newFactor.customer= customerObj + newFactor.amount = sum_price + if payType in ('naghd', 'kartKhan', 'cardToCard'): + newFactor.pay_status = 'paid' + else: + newFactor.pay_status = 'unpaid' + newFactor.FactorType = FactorType + newFactor.PayType = payType + newFactor.desc = FactorDesc + if sarResidDate != None: + newFactor.deadline = sarResidDate + newFactor.user = User.objects.get(id=request.user.id) + newFactor.save() + except: + try: + Factorfail=True + newFactor.delete() + except: + pass + + if Factorfail != True: + #accFactor To article + is_naghd = False + articleHesabDari = Article() + articleHesabDari.debit = newFactor.amount + articleHesabDari.credit = 0 + articleHesabDari.customer = customerObj + articleHesabDari.factor = newFactor + + if payType in ('naghd', 'kartKhan', 'cardToCard'): + is_naghd = True + + articleHesabDari.type = payType + articleHesabDari.desc = str(FactorType) + " " + str(customerObj.name_family) + " طی فاکتور شماره: " + str(newFactor.id) + articleHesabDari.save() + + if is_naghd: + articleHesabDari2 = Article() + articleHesabDari2.debit = 0 + articleHesabDari2.credit = newFactor.amount + articleHesabDari2.customer = customerObj + articleHesabDari2.type = payType + articleHesabDari2.factor = newFactor + articleHesabDari2.desc = str(FactorType) + " " + str(customerObj.name_family) + " تسویه نقدی فاکتور شماره: " + str(newFactor.id) + articleHesabDari2.save() + elif pardakhti != None and pardakhti!='' and pardakhti != ' ': + articleHesabDari2 = Article() + articleHesabDari2.debit = 0 + articleHesabDari2.credit = pardakhti + articleHesabDari2.customer = customerObj + articleHesabDari2.type = payType + articleHesabDari2.factor = newFactor + articleHesabDari2.desc = str(customerObj.name_family) + " پرداخت نقد در محل برا فاکتور " + str(newFactor.id) + articleHesabDari2.save() + + for prd in prdsList: + try: + fIteams = FactorIteam() + fIteams.factor = newFactor + if prd['prd_id'] == 9999: + Gproduct = None + fIteams.product = Gproduct + fIteams.product_name = prd['product_name'] + fIteams.num = prd['prd_count'] + fIteams.amount = int(prd['priceKol']) + else: + Gproduct = Product.objects.get(id=prd['prd_id']) + fIteams.product = Gproduct + fIteams.product_name = Gproduct.product_name + fIteams.num = prd['prd_count'] + fIteams.amount = prd['prd_count'] * Gproduct.product_price + fIteams.garantyEsh = prd['garanty_Esh'] + fIteams.save() + except: + Factorfail = True + newFactor.delete() + break + + if Factorfail != True: + for prd in prdsList: + if prd['prd_id'] != 9999: + pInStore = ProductInStore() + sRoom = storeUser + productO = Product.objects.get(id=prd['prd_id']) + pInStore.StoreRoom = sRoom + pInStore.Product = productO + pInStore.factor = newFactor + productS_in = ProductInStore.objects.filter(Product=productO, StoreRoom=sRoom, year=1400).aggregate(Sum('s_in'))['s_in__sum'] + productS_out = ProductInStore.objects.filter(Product=productO, StoreRoom=sRoom, year=1400).aggregate(Sum('s_out'))['s_out__sum'] + mojodi_prd = productS_in - productS_out + if mojodi_prd >= prd['prd_count']: + pInStore.s_out = prd['prd_count'] + if prd['garanty_Esh'] != ' ' and prd['garanty_Esh'] != '' and prd['garanty_Esh'] != None: + pInStore.desc = "خروج: " + str(prd['prd_count']) + "#"+str(prd['garanty_Esh'])+ "#" + str(customerObj.name_family) + " * " + str(request.user.first_name) + " " + str(request.user.last_name) + else: + pInStore.desc = "خروج: " + str(prd['prd_count']) + "#فروش" + "#" + str(customerObj.name_family) + " * " + str(request.user.first_name) + " " + str(request.user.last_name) + pInStore.save() + else: + return HttpResponse("موجودی کافی نیست، موجودی فعلی: "+ str(mojodi_prd)) + + return redirect('/panel/customer/'+str(c_id)+'/factors/') + + +@login_required(login_url='/panel/p_login/') +def newFactor2(request, c_id): + if request.method != 'POST': + return HttpResponseBadRequest("متد ارسالی باید POST باشد.") + + user_op = request.user + + try: + prds_list = json.loads(request.POST.get('prdsList') or '[]') + json_pardakht_ha = json.loads(request.POST.get('PardakhtHa') or '{}') + except json.JSONDecodeError: + return HttpResponseBadRequest("فرمت دادههای ارسالی JSON نامعتبر است.") + + factor_type = request.POST.get('FactorType', '') + factor_desc = request.POST.get('FactorDesc', '') + sar_resid_date = _parse_jalali_date(request.POST.get('sarResidDate')) + + customer_obj = get_object_or_404(Customer, id=c_id) + store_room = get_object_or_404(StoreRoom, owners=user_op) + + # رفع مشکل متنی/عددی در استخراج شناسه کالاها + product_ids = [] + for item in prds_list: + p_id = item.get('prd_id') + if p_id and _safe_int(p_id) != 9999: + product_ids.append(_safe_int(p_id)) + + products_by_id = {p.id: p for p in Product.objects.filter(id__in=product_ids)} + + sum_price = sum( + _safe_int(item.get('prd_count')) * _safe_int(item.get('price')) + for item in prds_list + if not str(item.get('garanty_Esh', '')).strip() + ) + + try: + with transaction.atomic(): + + new_factor = Factor.objects.create( + customer=customer_obj, + amount=sum_price, + FactorType=factor_type, + desc=factor_desc, + deadline=sar_resid_date, + user=user_op + ) + + Article.objects.create( + debit=sum_price, + credit=0, + customer=customer_obj, + factor=new_factor, + desc=f"{customer_obj.name_family} فاکتور شماره: {new_factor.id}", + user=user_op + ) + + payment_map = { + 'l_naghd': 'نقد', + 'l_kartbekart': 'کارت به کارت', + 'l_kartKhan': 'کارت خوان', + 'l_takhfif': 'تخفیف' + } + + for key, amount_raw in json_pardakht_ha.items(): + amount = _safe_int(amount_raw) + if amount <= 0: + continue + + if key in payment_map: + nahve_pardakht = payment_map[key] + Article.objects.create( + debit=0, + credit=amount, + customer=customer_obj, + factor=new_factor, + desc=f"{nahve_pardakht} {customer_obj.name_family} فاکتور شماره: {new_factor.id}", + nahvePardakht=nahve_pardakht, + payStatus="true", + user=user_op + ) + + elif key in ['l_nesiye', 'l_checkPrice']: + is_nesiye = (key == 'l_nesiye') + type_str = 'nesiye' if is_nesiye else 'check' + ts_key = 'l_nesiyeSarResid' if is_nesiye else 'l_checkPriceSarResid' + + sar_resid_dt = _parse_timestamp(json_pardakht_ha.get(ts_key)) + + Sarresid.objects.create( + customer=customer_obj, + price=amount, + payStatus="false", + type=type_str, + user=user_op, + factor=new_factor, + sarresidDT=sar_resid_dt + ) + + factor_items_pool = [] + user_fullname = f"{user_op.first_name} {user_op.last_name}".strip() or user_op.username + + for item in prds_list: + # تبدیل امن شناسه به عدد + prd_id = _safe_int(item.get('prd_id')) + prd_count = _safe_int(item.get('prd_count')) + garanty_esh = item.get('garanty_Esh', '') + + if prd_id == 9999: + factor_items_pool.append(FactorIteam( + factor=new_factor, + product=None, + product_name=item.get('product_name', ''), + num=prd_count, + amount=_safe_int(item.get('priceKol')), + garantyEsh=garanty_esh + )) + else: + product_obj = products_by_id.get(prd_id) + + if not product_obj: + raise InventoryException(f"خطا در دریافت محصول: محصولی با شناسه {prd_id} در سیستم وجود ندارد.") + + factor_items_pool.append(FactorIteam( + factor=new_factor, + product=product_obj, + product_name=product_obj.product_name, + num=prd_count, + amount=prd_count * _safe_int(product_obj.product_price), + garantyEsh=garanty_esh + )) + + FactorIteam.objects.bulk_create(factor_items_pool, batch_size=500) + + # فرآیند کسر از انبار (Enterprise Level) + for item in prds_list: + prd_id = _safe_int(item.get('prd_id')) + if prd_id == 9999: + continue + + prd_count = _safe_int(item.get('prd_count')) + garanty_esh = item.get('garanty_Esh', '') + product_obj = products_by_id.get(prd_id) + + if not product_obj: + continue + + # ۱. کوئری پایه + qs = ProductInStore.objects.filter( + Product=product_obj, + StoreRoom=store_room, + year=1400 + ) + + # ۲. قفل دیتابیس هوشمند و سازگار با تمام پایگاههای داده + if connection.features.has_select_for_update: + qs = qs.select_for_update() + + # ۳. بارگذاری امن در رم برای جلوگیری از خطای Aggregate در دیتابیس قفلشده + locked_records = list(qs) + + # ۴. محاسبه دقیق و پرسرعت در پایتون + total_in = sum(rec.s_in for rec in locked_records if rec.s_in) + total_out = sum(rec.s_out for rec in locked_records if rec.s_out) + mojodi_prd = total_in - total_out + + if mojodi_prd < prd_count: + # استفاده از متن دقیق خطای قبلی جهت حفظ سازگاری با فرانتاند + raise InventoryException(f"موجودی کافی نیست، موجودی فعلی {product_obj.product_name}: {mojodi_prd}") + + # ۵. تشخیص نوع تراکنش برای سیستم گزارشگیری جدید انبار + if garanty_esh and str(garanty_esh).strip(): + desc_text = f"خروج: {prd_count}#{garanty_esh}#{customer_obj.name_family} * {user_fullname}" + + if "اشانتیون" in str(garanty_esh): + m_type = ProductInStore.MovementType.PROMOTION + else: + m_type = ProductInStore.MovementType.WARRANTY + else: + desc_text = f"خروج: {prd_count}#فروش#{customer_obj.name_family} * {user_fullname}" + m_type = ProductInStore.MovementType.SALE + + # ۶. ثبت تراکنش خروجی انبار + ProductInStore.objects.create( + StoreRoom=store_room, + Product=product_obj, + factor=new_factor, + s_out=prd_count, + desc=desc_text, + movement_type=m_type, # ثبت ساختاریافته نوع خروج برای سرعت در گزارشگیری + year=1400 + ) + + except InventoryException as e: + return HttpResponse(str(e), status=400) + except Exception as e: + logger.error(f"Error creating factor for customer {c_id}: {str(e)}", exc_info=True) + return HttpResponse("خطایی غیرمنتظره در سرور رخ داد. اطلاعات ذخیره نشد.", status=500) + + return redirect(f'/panel/customer/{c_id}/factors/') + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.DelFactor', raise_exception=True) +@require_POST +def FactorDel(request, c_id, f_id): + customer_obj = get_object_or_404(Customer, id=c_id) + factor_initial = get_object_or_404(Factor, id=f_id, customer=customer_obj) + + if factor_initial.pay_status == 'cancell' or not factor_initial.is_active: + return HttpResponseBadRequest("این فاکتور قبلاً باطل یا برگشت داده شده است.") + + user_fullname = f"{request.user.first_name} {request.user.last_name}".strip() or request.user.username + cancel_reason = request.POST.get('cancel_reason', 'error') + payment_action = request.POST.get('payment_action', 'keep') + + if cancel_reason == 'return': + reason_text = "برگشت از فروش (مرجوعی مشتری)" + inv_movement = ProductInStore.MovementType.RETURN + else: + reason_text = "اصلاح خطای کاربری" + inv_movement = ProductInStore.MovementType.ERROR_CORRECTION + + try: + with transaction.atomic(): + if connection.features.has_select_for_update: + factor = Factor.objects.select_for_update().get(pk=factor_initial.pk) + else: + factor = Factor.objects.get(pk=factor_initial.pk) + + if factor.pay_status == 'cancell' or not factor.is_active: + return HttpResponseBadRequest("خطای همزمانی: این فاکتور در لحظه فرستادن درخواست باطل شده بود.") + + factor.is_active = False + factor.pay_status = 'cancell' + factor.save(update_fields=['is_active', 'pay_status']) + + # واکشی اسناد پرداخت قبل از ایجاد سند جدید (جلوگیری از باگ تکرار سند) + payments_to_reverse = [] + if payment_action == 'reverse' or cancel_reason == 'error': + payments_to_reverse = list(Article.objects.filter( + Q(debit=0) | Q(debit__isnull=True), + factor=factor, + credit__gt=0 + )) + + # ۱. صدور سند معکوس مالی برای کل مبلغ فاکتور + factor_amount = int(factor.amount or 0) + if factor_amount > 0: + Article.objects.create( + debit=0, + credit=factor_amount, + customer=customer_obj, + factor=factor, + type=factor.PayType, + desc=f"برگشت از فروش و ابطال فاکتور شماره {factor.id} (مرجوعی کالا توسط مشتری) - کاربر: {user_fullname}" if cancel_reason == 'return' else f"اصلاح خطای سیستم: ابطال فاکتور اشتباه شماره {factor.id} (بدون جابجایی واقعی کالا) - کاربر: {user_fullname}", + user=request.user, + payStatus="true" + ) + + # ۲. خنثی کردن پرداختهای اولیه فاکتور + for p in payments_to_reverse: + Article.objects.create( + debit=p.credit, + credit=0, + customer=customer_obj, + factor=factor, + type=p.type, + nahvePardakht=p.nahvePardakht, + desc=f"عودت وجه پرداخت شده / ابطال رسید فاکتور {factor.id} (به دلیل مرجوعی کالا) - کاربر: {user_fullname}" if cancel_reason == 'return' else f"اصلاح خطای سیستم: ابطال رسید پرداخت فاکتور اشتباه شماره {factor.id} - کاربر: {user_fullname}", + user=request.user, + payStatus="true" + ) + + # ۳. 🛠️ اصلاح انبار (حل باگ عدم تغییر موجودی سیستم) + stock_movements = list(ProductInStore.objects.filter(factor=factor, s_out__gt=0)) + + for movement in stock_movements: + pInStore = ProductInStore( + StoreRoom=movement.StoreRoom, + Product=movement.Product, + factor=factor, + s_in=movement.s_out, # برگرداندن تعداد کسر شده به ستون ورودی + s_out=0, + year=movement.year, # 💡 فیکس قطعی: استفاده دقیق از سال مالی تراکنش اصلی (۱۴۰۰) جهت همخوانی با توابع سیستم + desc=f"ورود به انبار بابت برگشت از فروش کالا (فاکتور {factor.id}) - کاربر: {user_fullname}" if cancel_reason == 'return' else f"ورود به انبار بابت اصلاح خطای ثبت فاکتور {factor.id} - کاربر: {user_fullname}", + movement_type=inv_movement + ) + pInStore.save() # فراخوانی متد save مدل شما که محاسبات تاریخچه و موجودی لحظهای را انجام میدهد + + # ۴. ابطال اقساط و سررسیدهای پاس نشده + Sarresid.objects.filter(factor=factor, payStatus="false").update( + payStatus="cancell", + desc=f"ابطال بابت {reason_text} فاکتور {factor.id}" + ) + + logger.info(f"Factor {factor.id} successfully cancelled. Reason: {cancel_reason}, Payment: {payment_action}") + + except Exception as e: + logger.error(f"Critical error in FactorDel for factor {f_id}: {str(e)}", exc_info=True) + return HttpResponse("خطای سیستمی در فرآیند ابطال و صدور اسناد اصلاحی رخ داد.", status=500) + + return redirect('admin_panel:customerFactors', c_id=c_id) diff --git a/admin_panel/views/finance.py b/admin_panel/views/finance.py new file mode 100644 index 0000000..fef48ad --- /dev/null +++ b/admin_panel/views/finance.py @@ -0,0 +1,974 @@ +import datetime +import json + +from django.db import transaction +from django.db.models import (Sum, Q, Count, Avg, Min, F, Subquery, OuterRef, + IntegerField, Value, Case, When) +from django.db.models.functions import Coalesce +from django.shortcuts import redirect, render, get_object_or_404 +from django.http import HttpResponse, HttpResponseBadRequest +from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage +from django.views.decorators.http import require_POST +from django.contrib import messages +from django.contrib.auth.models import User +from django.contrib.auth.decorators import login_required, permission_required +from persiantools.jdatetime import JalaliDate + +from ..models import (Article, Sarresid, Customer, Factor, ProductInStore, + StoreRoom, Action) +from ._helpers import logger, _safe_int + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def report(request): + + nahvePardakhat = [ + {'fa': 'تخفیف', 'en': 'تخفیف'}, + {'fa': 'نسیه', 'en': 'نسیه'}, + {'fa': 'چک', 'en': 'چک'}, + {'fa': 'کارتخوان', 'en': 'کارت خوان'}, + {'fa': 'کارت به کارت', 'en': 'کارت به کارت'}, + {'fa': 'نقدی', 'en': 'نقد'}, + ] + + userHa = User.objects.filter() + + if request.method == "GET": + nahvePardakht = request.GET.get("nahvepardakht", None) + user = request.GET.get("user", None) + azTarikh = request.GET.get("azTarikh", None) + taTarikh = request.GET.get("taTarikh", None) + pagenumber = request.GET.get("page", None) + + + if azTarikh and nahvePardakht: + + query_data = { + 'nahvePardakht': nahvePardakht, + 'user': user, + 'azTarikh': azTarikh, + 'taTarikh': taTarikh, + } + + azDateTime = datetime.datetime.fromtimestamp(int(azTarikh) / 1e3) + azDateTime = azDateTime.strftime('%Y-%m-%d 00:00:00') + + taDateTime = datetime.datetime.fromtimestamp(int(taTarikh) / 1e3) + taDateTime = taDateTime.strftime('%Y-%m-%d 23:59:59') + print("b") + user_a = User.objects.get(username=user) + print(user_a) + + if nahvePardakht == "نسیه" or nahvePardakht == "چک": + if nahvePardakht == 'نسیه': + typeSarresid = 'nesiye' + elif nahvePardakht == 'چک': + typeSarresid = 'check' + + + sumSarresidha = Sarresid.objects.filter( + type=typeSarresid, + user=user_a, + createdDT__lte=taDateTime, + createdDT__gte=azDateTime, + payStatus='false' + ).aggregate(Sum('price')) + + sarresidha = Sarresid.objects.filter( + type=typeSarresid, + user=user_a, + createdDT__lte=taDateTime, + createdDT__gte=azDateTime, + payStatus='false' + ) + + paginator = Paginator(sarresidha, 25) # Show 25 contacts per page. + page_number = request.GET.get('page', None) + all_sarresidha = paginator.get_page(pagenumber) + data = {'sarresidha': all_sarresidha ,'sumSarresidha': sumSarresidha, 'nahvePardakhat': nahvePardakhat, 'userHa':userHa, 'query_data': query_data} + return render(request, 'admin_panel/reportCheckNesiye.html', data) + + else: + + sumAricles = Article.objects.filter( + nahvePardakht=nahvePardakht, + user=user_a, + createdDT__lte=taDateTime, + createdDT__gte=azDateTime, + ).aggregate(Sum('credit')) + + aricles1 = Article.objects.filter( + nahvePardakht=nahvePardakht, + user=user_a, + createdDT__lte=taDateTime, + createdDT__gte=azDateTime, + ) + + paginator = Paginator(aricles1, 25) # Show 25 contacts per page. + page_number = request.GET.get('page', None) + all_aricles = paginator.get_page(page_number) + data = {'aricles': all_aricles,'sum_credit': sumAricles, 'nahvePardakhat': nahvePardakhat, 'userHa':userHa, 'query_data': query_data} + return render(request, 'admin_panel/report.html', data) + else: + data = {'nahvePardakhat': nahvePardakhat, 'userHa':userHa} + return render(request, 'admin_panel/report.html', data) + + + data = {'nahvePardakhat': nahvePardakhat, 'userHa':userHa} + return render(request, 'admin_panel/report.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def report_debtors_no_vosol(request): + now = datetime.datetime.now() + + # --- ۱. دریافت و اعتبارسنجی پارامترهای فیلتر از فرانتاند --- + try: + days_threshold = int(request.GET.get('days', 20)) + if days_threshold < 0: + days_threshold = 20 + except ValueError: + days_threshold = 20 + + filter_type = request.GET.get('filter_type', 'all') # all, never, expired + sort_field = request.GET.get('sort', 'amount') # amount, oldest_date, last_action + sort_dir = request.GET.get('dir', 'desc') # asc, desc + + threshold_date = now - datetime.timedelta(days=days_threshold) + + # --- ۲. ساخت Subquery های فوقسریع و ایمن --- + sq_debit = Article.objects.filter(customer=OuterRef('pk')).values('customer').annotate(s=Sum('debit')).values('s') + sq_credit = Article.objects.filter(customer=OuterRef('pk')).values('customer').annotate(s=Sum('credit')).values('s') + + sq_overdue_amt = Sarresid.objects.filter( + customer=OuterRef('pk'), payStatus='false', sarresidDT__lte=now + ).values('customer').annotate(s=Sum('price')).values('s') + + sq_oldest_date = Sarresid.objects.filter( + customer=OuterRef('pk'), payStatus='false', sarresidDT__lte=now + ).values('customer').annotate(min_dt=Min('sarresidDT')).values('min_dt') + + sq_overdue_count = Sarresid.objects.filter( + customer=OuterRef('pk'), payStatus='false', sarresidDT__lte=now + ).values('customer').annotate(c=Count('id')).values('c') + + # استخراج آخرین سابقه اکشن وصول + latest_vosol_qs = Action.objects.filter( + customer=OuterRef('pk'), actionType='vosol' + ).order_by('-createdDT') + + # --- ۳. ساخت کوئری پایه (فقط مشتریان فعال و دارای معوقه) --- + base_qs = Customer.objects.filter(is_active=True).annotate( + t_debit=Coalesce(Subquery(sq_debit, output_field=IntegerField()), Value(0)), + t_credit=Coalesce(Subquery(sq_credit, output_field=IntegerField()), Value(0)), + overdue_amount=Coalesce(Subquery(sq_overdue_amt, output_field=IntegerField()), Value(0)), + overdue_count=Coalesce(Subquery(sq_overdue_count, output_field=IntegerField()), Value(0)), + oldest_overdue_date=Subquery(sq_oldest_date), + last_vosol_date=Subquery(latest_vosol_qs.values('createdDT')[:1]), + last_vosol_desc=Subquery(latest_vosol_qs.values('desc')[:1]) + ).annotate( + net_debt=F('t_debit') - F('t_credit') + ).filter( + overdue_amount__gt=0 # شرط اساسی: فقط کسانی که معوقه سررسید گذشته دارند + ) + + # استخراج مشتریانی که نیازمند پیگیری هستند (هرگز پیگیری نشدهاند یا موعد پیگیریشان گذشته است) + action_needed_qs = base_qs.filter( + Q(last_vosol_date__isnull=True) | Q(last_vosol_date__lt=threshold_date) + ) + + # --- ۴. محاسبه آمار دقیق (بدون خطا) برای داشبورد --- + # استفاده از Case/When برای جلوگیری کامل از خطای None در Aggregate + stats = action_needed_qs.aggregate( + never_count=Coalesce(Sum(Case(When(last_vosol_date__isnull=True, then=1), default=Value(0), output_field=IntegerField())), Value(0)), + never_amount=Coalesce(Sum(Case(When(last_vosol_date__isnull=True, then=F('overdue_amount')), default=Value(0), output_field=IntegerField())), Value(0)), + expired_count=Coalesce(Sum(Case(When(last_vosol_date__isnull=False, then=1), default=Value(0), output_field=IntegerField())), Value(0)), + expired_amount=Coalesce(Sum(Case(When(last_vosol_date__isnull=False, then=F('overdue_amount')), default=Value(0), output_field=IntegerField())), Value(0)), + ) + + # --- ۵. اعمال فیلتر کشویی (Dropdown) --- + if filter_type == 'never': + final_qs = action_needed_qs.filter(last_vosol_date__isnull=True) + elif filter_type == 'expired': + final_qs = action_needed_qs.filter(last_vosol_date__isnull=False) + else: # all + final_qs = action_needed_qs + + # --- ۶. اعمال مرتبسازی (Sorting) پویا --- + if sort_field == 'amount': + order_expr = F('overdue_amount').desc() if sort_dir == 'desc' else F('overdue_amount').asc() + elif sort_field == 'oldest_date': + order_expr = F('oldest_overdue_date').desc(nulls_last=True) if sort_dir == 'desc' else F('oldest_overdue_date').asc(nulls_last=True) + elif sort_field == 'last_action': + order_expr = F('last_vosol_date').desc(nulls_last=True) if sort_dir == 'desc' else F('last_vosol_date').asc(nulls_first=True) + else: + order_expr = F('overdue_amount').desc() + + final_qs = final_qs.order_by(order_expr) + + # --- ۷. صفحهبندی ایمن --- + paginator = Paginator(final_qs, 50) + page_number = request.GET.get('page', 1) + try: + page_obj = paginator.page(page_number) + except (PageNotAnInteger, EmptyPage): + page_obj = paginator.page(1) + + context = { + 'page_obj': page_obj, + 'page_name': 'debtors_no_vosol', + 'stats': stats, + # پارامترهای کنترل پنل + 'current_days': days_threshold, + 'current_filter': filter_type, + 'current_sort': sort_field, + 'current_dir': sort_dir, + } + + return render(request, 'admin_panel/report_debtors_no_vosol.html', context) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def inventory_movements_report(request): + """ + گزارش جامع گردش و خروج کالا از انبار به همراه فیلتر متنی نام کالا، + نوع تراکنش، کاربر، انبار و بازه زمانی شمسی. + """ + all_users = User.objects.all().order_by('first_name') + all_stores = StoreRoom.objects.all() + movement_choices = ProductInStore.MovementType.choices + + # دریافت پارامترهای فیلتر از فرانتاند + selected_type = request.GET.get('movement_type', '') + selected_user = request.GET.get('user_id', '') + selected_store = request.GET.get('store_id', '') + selected_product_name = request.GET.get('product_name', '').strip() # فیلد جدید جستجوی نام کالا + az_tarikh = request.GET.get('azTarikh', '') + ta_tarikh = request.GET.get('taTarikh', '') + + # ۱. کوئری پایه بهینه + movements_list = ProductInStore.objects.select_related( + 'Product', 'StoreRoom', 'factor__customer', 'factor__user' + ).filter(year=1400).order_by('-createdDT') + + # ۲. اعمال فیلترهای پویا + if selected_type: + movements_list = movements_list.filter(movement_type=selected_type) + + if selected_user: + movements_list = movements_list.filter(factor__user__id=_safe_int(selected_user)) + + if selected_store: + movements_list = movements_list.filter(StoreRoom__id=_safe_int(selected_store)) + + if selected_product_name: + # فیلتر متنی حساس نبودن به حروف بزرگ و کوچک (Case-Insensitive Contains) + movements_list = movements_list.filter(Product__product_name__icontains=selected_product_name) + + # ۳. پردازش بازه زمانی + if az_tarikh: + try: + az_dt = datetime.datetime.fromtimestamp(int(az_tarikh) / 1000.0) + movements_list = movements_list.filter(createdDT__gte=az_dt.strftime('%Y-%m-%d 00:00:00')) + except (ValueError, TypeError): + pass + + if ta_tarikh: + try: + ta_dt = datetime.datetime.fromtimestamp(int(ta_tarikh) / 1000.0) + movements_list = movements_list.filter(createdDT__lte=ta_dt.strftime('%Y-%m-%d 23:59:59')) + except (ValueError, TypeError): + pass + + # ۴. محاسبه آماری سریع دیتابیس روی نتایج فیلتر شده + summary_stats = movements_list.aggregate( + total_out_qty=Sum('s_out'), + total_in_qty=Sum('s_in') + ) + + # ۵. صفحهبندی نتایج + paginator = Paginator(movements_list, 50) + page_number = request.GET.get('page') + page_obj = paginator.get_page(page_number) + + context = { + 'page_obj': page_obj, + 'all_users': all_users, + 'all_stores': all_stores, + 'movement_choices': movement_choices, + 'summary_stats': summary_stats, + 'filters': { + 'movement_type': selected_type, + 'user_id': _safe_int(selected_user) if selected_user else '', + 'store_id': _safe_int(selected_store) if selected_store else '', + 'product_name': selected_product_name, # ارسال فیلد جدید به قالب برای حفظ مقدار ورودی + 'azTarikh': az_tarikh, + 'taTarikh': ta_tarikh, + } + } + + return render(request, 'admin_panel/report_inventory_movements.html', context) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def financial_dashboard(request): + """ + داشبورد هوش مالی و مدیریت نقدینگی (BI Dashboard) + مجهز به هسته حسابرسی ۳۶۰ درجه برای کشف تمامی مغایرتها (بدهی رو هوا، چکهای الکی، پیشدریافتها) + """ + az_tarikh = request.GET.get('azTarikh', '') + ta_tarikh = request.GET.get('taTarikh', '') + + az_dt = None + ta_dt = None + + if az_tarikh: + try: + az_dt = datetime.datetime.fromtimestamp(int(az_tarikh) / 1000.0) + az_dt = az_dt.replace(hour=0, minute=0, second=0) + except (ValueError, TypeError): + pass + + if ta_tarikh: + try: + ta_dt = datetime.datetime.fromtimestamp(int(ta_tarikh) / 1000.0) + ta_dt = ta_dt.replace(hour=23, minute=59, second=59) + except (ValueError, TypeError): + pass + + anchor_dt = ta_dt if ta_dt else datetime.datetime.now() + + # ========================================================================= + # محاسبه روند ۱۲ ماهه غلتان (TTM) + # ========================================================================= + jalali_months = ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'] + trend_labels = [] + trend_data = [] + + anchor_jd = JalaliDate(anchor_dt.date()) + curr_y = int(anchor_jd.year) + curr_m = int(anchor_jd.month) + + for _ in range(12): + if curr_m < 1: + curr_m = 12 + curr_y -= 1 + + label = f"{jalali_months[curr_m - 1]} {curr_y}" + trend_labels.insert(0, label) + + last_day = JalaliDate.days_in_month(curr_m, curr_y) + end_of_month_jd = JalaliDate(curr_y, curr_m, last_day) + end_of_month_gd = end_of_month_jd.to_gregorian() + end_dt_str = end_of_month_gd.strftime('%Y-%m-%d 23:59:59') + + totals = Article.objects.filter(createdDT__lte=end_dt_str).aggregate( + t_deb=Sum('debit'), + t_cred=Sum('credit') + ) + t_deb = totals['t_deb'] or 0 + t_cred = totals['t_cred'] or 0 + month_total_debt = t_deb - t_cred + + trend_data.insert(0, month_total_debt) + curr_m -= 1 + + # ========================================================================= + # فیلترهای پایه (دادههای زماندار و داشبورد) + # ========================================================================= + sarresid_qs = Sarresid.objects.filter(factor__productinstore__year=1400).distinct() + factor_qs = Factor.objects.filter(productinstore__year=1400, is_active=True).distinct() + article_qs = Article.objects.filter(factor__productinstore__year=1400).distinct() + store_qs = ProductInStore.objects.filter(year=1400) + + if az_dt: + sarresid_qs = sarresid_qs.filter(createdDT__gte=az_dt) + factor_qs = factor_qs.filter(create_date__gte=az_dt) + article_qs = article_qs.filter(createdDT__gte=az_dt) + store_qs = store_qs.filter(createdDT__gte=az_dt) + + if ta_dt: + sarresid_qs = sarresid_qs.filter(createdDT__lte=ta_dt) + factor_qs = factor_qs.filter(create_date__lte=ta_dt) + article_qs = article_qs.filter(createdDT__lte=ta_dt) + store_qs = store_qs.filter(createdDT__lte=ta_dt) + + # کارتهای شاخص عملکرد عمومی + total_unpaid_debts = sarresid_qs.filter(payStatus="false").aggregate(Sum('price'))['price__sum'] or 0 + total_sales_period = factor_qs.aggregate(Sum('amount'))['amount__sum'] or 0 + overdue_checks_count = sarresid_qs.filter(payStatus="false", type="check", sarresidDT__lte=anchor_dt).count() + + # ========================================================================= + # 👑 هسته حسابرسی ۳۶۰ درجه (برگرفته از Ghost Hunter / Deep Audit) + # ========================================================================= + + # الف) تراز کل ریاضی سیستم + g_art = Article.objects.aggregate(d=Sum('debit'), c=Sum('credit')) + global_mande = (g_art['d'] or 0) - (g_art['c'] or 0) + g_sar = Sarresid.objects.filter(payStatus="false").aggregate(s=Sum('price'))['s'] or 0 + global_diff = global_mande - g_sar + + # ب) محاسبات Subquery فوقسریع برای تمام مشتریان + sq_debit = Article.objects.filter(customer=OuterRef('pk')).values('customer').annotate(s=Sum('debit')).values('s') + sq_credit = Article.objects.filter(customer=OuterRef('pk')).values('customer').annotate(s=Sum('credit')).values('s') + sq_sarresid = Sarresid.objects.filter(customer=OuterRef('pk'), payStatus="false").values('customer').annotate(s=Sum('price')).values('s') + + base_customers = Customer.objects.filter(is_active=True).annotate( + t_debit=Coalesce(Subquery(sq_debit, output_field=IntegerField()), 0), + t_credit=Coalesce(Subquery(sq_credit, output_field=IntegerField()), 0), + t_sarresid=Coalesce(Subquery(sq_sarresid, output_field=IntegerField()), 0), + ).annotate( + net_debt=F('t_debit') - F('t_credit') # تراز نهایی + ).annotate( + diff=F('net_debt') - F('t_sarresid') # میزان کسر/اضافه سند + ) + + # 🔴 گروه 1: بدهکارانی که کسر سند/چک دارند (بدهی خطرناک روی هوا) [diff > 0] + group1_qs = base_customers.filter(diff__gt=0).order_by('-diff') + group1_count = group1_qs.count() + group1_total = sum(group1_qs.values_list('diff', flat=True)) or 0 + group1_sample = group1_qs[:20] + + # 🟡 گروه 2: چک پاسنشده در سیستم بیشتر از بدهی است (خطای ثبتی اپراتور) [diff < 0 AND net_debt >= 0] + group2_qs = base_customers.filter(diff__lt=0, net_debt__gte=0).annotate( + fake_amount=F('t_sarresid') - F('net_debt') + ).order_by('-fake_amount') + group2_count = group2_qs.count() + group2_total = sum(group2_qs.values_list('fake_amount', flat=True)) or 0 + group2_sample = group2_qs[:20] + + # 🟢 گروه 3: پیشدریافت خالص (بستانکار است و هیچ چکی ندارد) [diff < 0 AND net_debt < 0 AND t_sarresid = 0] + group3_qs = base_customers.filter(diff__lt=0, net_debt__lt=0, t_sarresid=0).order_by('net_debt') # net_debt منفی است + group3_count = group3_qs.count() + group3_total = sum(group3_qs.values_list('net_debt', flat=True)) or 0 + group3_sample = group3_qs[:20] + + # 🟣 گروه 4: عجیبترین حالت! مشتری بستانکار است، اما چک پاسنشده هم در سیستم دارد! [diff < 0 AND net_debt < 0 AND t_sarresid > 0] + group4_qs = base_customers.filter(diff__lt=0, net_debt__lt=0, t_sarresid__gt=0).order_by('net_debt') + group4_count = group4_qs.count() + group4_total = sum(group4_qs.values_list('diff', flat=True)) or 0 + group4_sample = group4_qs[:20] + + # ========================================================================= + # نمودارها و آمار تکمیلی داشبورد + # ========================================================================= + debt_future = sarresid_qs.filter(payStatus="false", sarresidDT__gt=anchor_dt).aggregate(Sum('price'))['price__sum'] or 0 + dt_30_days_ago = anchor_dt - datetime.timedelta(days=30) + debt_0_30 = sarresid_qs.filter(payStatus="false", sarresidDT__lte=anchor_dt, sarresidDT__gte=dt_30_days_ago).aggregate(Sum('price'))['price__sum'] or 0 + dt_90_days_ago = anchor_dt - datetime.timedelta(days=90) + debt_30_90 = sarresid_qs.filter(payStatus="false", sarresidDT__lt=dt_30_days_ago, sarresidDT__gte=dt_90_days_ago).aggregate(Sum('price'))['price__sum'] or 0 + debt_above_90 = sarresid_qs.filter(payStatus="false", sarresidDT__lt=dt_90_days_ago).aggregate(Sum('price'))['price__sum'] or 0 + + payment_articles = article_qs.filter(credit__gt=0).values('nahvePardakht').annotate(total_amount=Sum('credit')).order_by('-total_amount') + pay_labels = [] + pay_data = [] + for item in payment_articles: + label = item['nahvePardakht'] or 'سایر/نامشخص' + pay_labels.append(label) + pay_data.append(item['total_amount']) + + store_leaks = store_qs.filter( + movement_type__in=[ProductInStore.MovementType.WARRANTY, ProductInStore.MovementType.PROMOTION] + ).values('movement_type').annotate(total_qty=Sum('s_out')) + + leak_data = {'WARRANTY': 0, 'PROMOTION': 0} + for leak in store_leaks: + leak_data[leak['movement_type']] = leak['total_qty'] + + context = { + 'kpi_total_unpaid': total_unpaid_debts, + 'kpi_total_sales': total_sales_period, + 'kpi_overdue_checks': overdue_checks_count, + + # آمار کلان ریاضیاتی + 'global_mande': global_mande, + 'g_sar': g_sar, + 'global_diff': global_diff, + + # متغیرهای ۴ گروه حسابرسی + 'group1_count': group1_count, 'group1_total': group1_total, 'group1_sample': group1_sample, + 'group2_count': group2_count, 'group2_total': group2_total, 'group2_sample': group2_sample, + 'group3_count': group3_count, 'group3_total': group3_total, 'group3_sample': group3_sample, + 'group4_count': group4_count, 'group4_total': group4_total, 'group4_sample': group4_sample, + + 'trend_labels': trend_labels, + 'trend_data': trend_data, + + 'aging_data': [debt_future, debt_0_30, debt_30_90, debt_above_90], + 'pay_labels': pay_labels, + 'pay_data': pay_data, + 'warranty_qty': leak_data['WARRANTY'], + 'promotion_qty': leak_data['PROMOTION'], + + 'filters': { + 'azTarikh': az_tarikh, + 'taTarikh': ta_tarikh, + } + } + + return render(request, 'admin_panel/financial_dashboard.html', context) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def bedehi(request): + try: + debit = Article.objects.filter().aggregate(Sum('debit'))['debit__sum'] + credit = Article.objects.filter().aggregate(Sum('credit'))['credit__sum'] + mandehesabCs = debit - credit + articls = Article.objects.filter().order_by('-createdDT') + articlsPaginator = Paginator(articls, 10) + pageNumber = request.GET.get("page", 1) + articl_objs = articlsPaginator.get_page(pageNumber) + + except: + articls =None + mandehesabCs = 0 + + data = {'articls': articl_objs, 'mandehesabKP': mandehesabCs} + return render(request, 'admin_panel/bedehi.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def hesabdari(request): + page_name = 'sarresidShodeha' + anchor_dt = datetime.datetime.now() + + # تعریف محدودههای زمانی ماتریس ریسک (سن مطالبات) + dt_30_days_ago = anchor_dt - datetime.timedelta(days=30) + dt_90_days_ago = anchor_dt - datetime.timedelta(days=90) + + # کوئری پایه: تمام سررسیدهای پرداختنشده که از موعد آنها گذشته است + base_qs = Sarresid.objects.filter(payStatus="false", sarresidDT__lte=anchor_dt) + + # محاسبه پرسرعت مجموع مبالغ در هر دسته (توسط موتور دیتابیس) + matrix_totals = base_qs.aggregate( + minor_delay=Sum('price', filter=Q(sarresidDT__gte=dt_30_days_ago)), + high_risk=Sum('price', filter=Q(sarresidDT__lt=dt_30_days_ago, sarresidDT__gte=dt_90_days_ago)), + critical=Sum('price', filter=Q(sarresidDT__lt=dt_90_days_ago)), + total_sum=Sum('price') + ) + + # دریافت فیلتر انتخابی کاربر از URL + risk_filter = request.GET.get('risk_level', 'all') + + # اعمال فیلتر روی لیست نمایش داده شده + if risk_filter == 'minor': + filtered_qs = base_qs.filter(sarresidDT__gte=dt_30_days_ago) + elif risk_filter == 'high': + filtered_qs = base_qs.filter(sarresidDT__lt=dt_30_days_ago, sarresidDT__gte=dt_90_days_ago) + elif risk_filter == 'critical': + filtered_qs = base_qs.filter(sarresidDT__lt=dt_90_days_ago) + else: + filtered_qs = base_qs + + # مرتبسازی: قدیمیترینها (خطرناکترینها) در صدر جدول قرار میگیرند + filtered_qs = filtered_qs.order_by('-sarresidDT') + + page_number = request.GET.get('page', 1) + paginator = Paginator(filtered_qs, per_page=50) + all_sarresid_pgi = paginator.get_page(page_number) + + data = { + 'page_name': page_name, + 'dateNow': anchor_dt.strftime('%Y-%m-%d %H:%M:%S'), + 'all_sarresid': all_sarresid_pgi, + 'current_filter': risk_filter, + # متغیرهای ماتریس ریسک + 'sum_sarresid': matrix_totals['total_sum'] or 0, + 'minor_sum': matrix_totals['minor_delay'] or 0, + 'high_sum': matrix_totals['high_risk'] or 0, + 'critical_sum': matrix_totals['critical'] or 0, + } + + return render(request, 'admin_panel/hesabdari.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def hesabdari_checkPass(request): + + page_name = 'checkPass' + + dateNow = datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') + all_sarresid = Sarresid.objects.filter(payStatus="true", type='check').order_by('-sarresidDT') + + page_number = request.GET.get('page', None) + paginator = Paginator(all_sarresid, per_page=50) + + all_sarresid_pgi = paginator.get_page(page_number) + + #paginator = Paginator(all_sarresid, per_page=200) + + data = {'all_sarresid': all_sarresid_pgi, "dateNow":dateNow, "page_name":page_name} + return render(request, 'admin_panel/hesabdari.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def hesabdari_checkPassFail(request): + + page_name = 'checkPassFaild' + + dateNow = datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') + all_sarresid = Sarresid.objects.filter(payStatus="false", type='check').order_by('sarresidDT') + + count_check_passfail = all_sarresid.count() + + sum_check_passfail = all_sarresid.aggregate(Sum('price'))['price__sum'] + + page_number = request.GET.get('page', None) + paginator = Paginator(all_sarresid, per_page=50) + + all_sarresid_pgi = paginator.get_page(page_number) + + #paginator = Paginator(all_sarresid, per_page=200) + + data = {'all_sarresid': all_sarresid_pgi, 'sum_check_passfail':sum_check_passfail, 'count_check_passfail': count_check_passfail, "dateNow":dateNow, "page_name":page_name} + return render(request, 'admin_panel/hesabdari.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def hesabdari_residnashone(request): + + page_name = 'sarresidNaShodeha' + + dateNow = datetime.datetime.today().strftime('%Y-%m-%d 23:59:59') + all_sarresid = Sarresid.objects.filter(payStatus="false", sarresidDT__gte=dateNow).order_by('sarresidDT') + + sarresidNashode = all_sarresid.aggregate(Sum('price'))['price__sum'] + page_number = request.GET.get('page', None) + paginator = Paginator(all_sarresid, per_page=50) + + all_sarresid_pgi = paginator.get_page(page_number) + + #paginator = Paginator(all_sarresid, per_page=200) + + data = {'sarresidNashode': sarresidNashode,'all_sarresid': all_sarresid_pgi, "dateNow":dateNow, "page_name":page_name} + return render(request, 'admin_panel/hesabdari.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def bedehiKhadamat(request): + #bedehiKhadamat + try: + debit = Article.objects.filter(typePy='khadamat').aggregate(Sum('debit'))['debit__sum'] + credit = Article.objects.filter(typePy='khadamat').aggregate(Sum('credit'))['credit__sum'] + mandehesabCs = debit - credit + articls = Article.objects.filter(typePy='khadamat').order_by('-createdDT')[:100] + except: + articls =None + mandehesabCs = 0 + + data = {'articls': articls, 'mandehesabKP': mandehesabCs} + return render(request, 'admin_panel/bedehi.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def bedehiNasb(request): + try: + debit = Article.objects.filter(typePy='nasb').aggregate(Sum('debit'))['debit__sum'] + credit = Article.objects.filter(typePy='nasb').aggregate(Sum('credit'))['credit__sum'] + mandehesabCs = debit - credit + articls = Article.objects.filter(typePy='nasb').order_by('-createdDT')[:100] + except: + articls =None + mandehesabCs = 0 + + data = {'articls': articls, 'mandehesabKP': mandehesabCs} + return render(request, 'admin_panel/bedehi.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +def passCheck(request, articl_id): + + sarresidINC = Sarresid.objects.get(id=articl_id) + user_op = request.user + + desc = request.POST.get('message') + + articleHesabDari2 = Article() + articleHesabDari2.debit = 0 + articleHesabDari2.credit = sarresidINC.price + articleHesabDari2.customer = sarresidINC.customer + articleHesabDari2.factor = sarresidINC.factor + articleHesabDari2.desc = 'وصول چک' + " " + str(sarresidINC.customer.name_family) + if sarresidINC.factor: + articleHesabDari2.desc += " فاکتور شماره: " + str(sarresidINC.factor.id) + articleHesabDari2.nahvePardakht = 'وصول چک' + articleHesabDari2.payStatus = "true" + articleHesabDari2.user = user_op + articleHesabDari2.save() + + sarresidINC.payStatus = "true" + sarresidINC.desc = desc + sarresidINC.save() + + return HttpResponse("ok") + #return redirect(request.META.get('HTTP_REFERER')) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +@require_POST +def update_check_info(request, sarresid_id): + # دریافت رکورد مورد نظر + sarresid = get_object_or_404(Sarresid, id=sarresid_id) + + # اطمینان از اینکه آیتم حتما چک است + if sarresid.type != 'check': + messages.error(request, "عملیات نامعتبر: این سند چک نیست.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + # دریافت مقادیر فرم با حذف فاصلههای اضافی + check_row_number = request.POST.get('check_row_number', '').strip() + check_sayyad_id = request.POST.get('check_sayyad_id', '').strip() + check_owner_name = request.POST.get('check_owner_name', '').strip() + check_owner_phone = request.POST.get('check_owner_phone', '').strip() + + # اعتبارسنجی فیلدهای اجباری + if not check_row_number or not check_sayyad_id or not check_owner_name: + messages.error(request, "شماره ردیف، شناسه صیادی و نام مالک اجباری است.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + # اعتبارسنجی شناسه صیادی (باید دقیقا ۱۶ رقم عدد باشد) + if not check_sayyad_id.isdigit() or len(check_sayyad_id) != 16: + messages.error(request, "شناسه صیادی باید دقیقاً ۱۶ رقم عدد باشد.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + # اعتبارسنجی شماره تلفن (در صورت وارد شدن باید فقط عدد باشد) + if check_owner_phone and not check_owner_phone.isdigit(): + messages.error(request, "شماره تلفن مالک چک باید فقط شامل اعداد باشد.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + try: + # بروزرسانی اطلاعات + sarresid.check_row_number = check_row_number + sarresid.check_sayyad_id = check_sayyad_id + sarresid.check_owner_name = check_owner_name + sarresid.check_owner_phone = check_owner_phone + # آپدیت فیلد توضیحات با اطلاعات جدید + sarresid.desc = f"صیادی: {check_sayyad_id} | مالک: {check_owner_name} | تلفن: {check_owner_phone or 'ندارد'}" + + sarresid.save() + messages.success(request, "اطلاعات چک با موفقیت ثبت/بروزرسانی شد.") + except Exception as e: + messages.error(request, "خطای سیستمی در بروزرسانی اطلاعات رخ داد.") + + return redirect(request.META.get('HTTP_REFERER', '/')) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +def addSarresid(request, cs_id): + if request.method != 'POST': + return HttpResponseBadRequest("متد ارسالی نامعتبر است.") + + try: + customerObj = get_object_or_404(Customer, id=cs_id) + + # دریافت فیلدهای اصلی + sarrresidUNIX = request.POST.get('n_sarresidDateTime') + sarresidPrice = request.POST.get('n_sarresidPrice') + sarresidType = request.POST.get('n_sarresidType') + + # دریافت و پاکسازی فیلدهای چک (جلوگیری از باگ فاصلههای خالی) + check_row_number = request.POST.get('check_row_number', '').strip() + check_sayyad_id = request.POST.get('check_sayyad_id', '').strip() + check_owner_name = request.POST.get('check_owner_name', '').strip() + check_owner_phone = request.POST.get('check_owner_phone', '').strip() + + # --- لایه اول: اعتبارسنجی فیلدهای پایه --- + if not sarrresidUNIX or not sarresidPrice or not sarresidType: + messages.error(request, "لطفا فیلدهای اصلی (مبلغ، نوع و تاریخ) را پر کنید.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + # --- لایه دوم: اعتبارسنجی دقیق و امنیتی فیلدهای چک --- + if sarresidType == "check": + if not check_row_number or not check_sayyad_id or not check_owner_name: + messages.error(request, "برای ثبت چک، وارد کردن شماره ردیف، شناسه صیادی و نام مالک اجباری است.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + # بررسی ۱۶ رقمی و عددی بودن شناسه صیادی + if not check_sayyad_id.isdigit() or len(check_sayyad_id) != 16: + messages.error(request, "شناسه صیادی باید دقیقاً ۱۶ رقم عدد باشد.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + # بررسی عددی بودن شماره تلفن (در صورت وارد شدن) + if check_owner_phone and not check_owner_phone.isdigit(): + messages.error(request, "شماره تلفن مالک چک باید فقط شامل اعداد باشد.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + # تبدیل نوع دادهها با مدیریت خطا (جلوگیری از کرش سرور 500) + try: + sarResidDateTime01 = datetime.datetime.fromtimestamp(int(sarrresidUNIX) / 1000.0) + price_int = int(sarresidPrice.replace(',', '')) + except ValueError: + messages.error(request, "مقادیر تاریخ یا مبلغ نامعتبر است.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + # --- لایه سوم: ذخیرهسازی اتمیک (تضمین جامعیت دادهها) --- + with transaction.atomic(): + # ۱. ثبت سند حسابداری + articleHesabDariObj = Article() + articleHesabDariObj.debit = price_int + articleHesabDariObj.credit = 0 + articleHesabDariObj.customer = customerObj + articleHesabDariObj.user = request.user + + if sarresidType == "check": + articleHesabDariObj.desc = f"بدهی بابت ثبت چک دستی (صیادی: {check_sayyad_id})" + elif sarresidType == "nesiye": + articleHesabDariObj.desc = "بدهی بابت ثبت نسیه دستی" + + articleHesabDariObj.save() + + # ۲. ثبت سررسید / چک + sarresidINC = Sarresid() + sarresidINC.customer = customerObj + sarresidINC.price = price_int + sarresidINC.payStatus = "false" + sarresidINC.type = sarresidType + sarresidINC.user = request.user + sarresidINC.sarresidDT = sarResidDateTime01 + + if sarresidType == "check": + sarresidINC.check_row_number = check_row_number + sarresidINC.check_sayyad_id = check_sayyad_id + sarresidINC.check_owner_name = check_owner_name + sarresidINC.check_owner_phone = check_owner_phone + sarresidINC.desc = f"صیادی: {check_sayyad_id} | مالک: {check_owner_name} | تلفن: {check_owner_phone or 'ندارد'}" + + sarresidINC.save() + + messages.success(request, "اطلاعات با موفقیت ثبت شد.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + except Exception as e: + logger.error(f"Error in addSarresid: {str(e)}", exc_info=True) + messages.error(request, "خطای سیستمی رخ داد. لطفا مجددا تلاش کنید.") + return redirect(request.META.get('HTTP_REFERER', '/')) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +def pardakhtNesiye(request, cs_id): + try: + customerObj = Customer.objects.get(id=cs_id) + user_op = request.user + + sarrresidUNIX = request.POST.get('next_sarresidDateTime', None) + sarresidPrice = int(request.POST.get('next_sarresidPrice', None)) + sr_articlID = request.POST.get('sr_articlID', None) + nahvePardakht = request.POST.get('nahvePardakht', None) + desc_sar = request.POST.get('desc_sar', None) + + sarResidDateTime01 = datetime.datetime.fromtimestamp(int(sarrresidUNIX)/1000.0) + + SarresidObj = Sarresid.objects.get(id=sr_articlID) + #return HttpResponse(sarresidPrice) + debitNow = SarresidObj.price - sarresidPrice + #return HttpResponse(debitNow) + + if debitNow==0: + #توسیه بدهی بخورد + SarresidObj.price = 0 + SarresidObj.payStatus = "true" + elif debitNow >= 1: + SarresidObj.price = debitNow + SarresidObj.sarresidDT = sarResidDateTime01 + else: + return HttpResponse("خطا در مورد مبلغ") + SarresidObj.save() + + + if str(nahvePardakht) == 'naghd': + nahvePardakht = 'نقد' + elif str(nahvePardakht) == 'kartbekart': + nahvePardakht = 'کارت به کارت' + elif str(nahvePardakht) == 'kartkhan': + nahvePardakht = 'کارت خوان' + elif str(nahvePardakht) == 'takhfif': + nahvePardakht = 'تخفیف' + elif str(nahvePardakht) == 'check': + nahvePardakht = 'چک' + + articleHesabDariObj = Article() + articleHesabDariObj.debit = 0 + articleHesabDariObj.credit = int(sarresidPrice) + + if desc_sar: + articleHesabDariObj.desc = "پرداختی بابت نسیه" + " | " + desc_sar + else: + articleHesabDariObj.desc = "پرداختی بابت نسیه" + + articleHesabDariObj.customer = customerObj + articleHesabDariObj.nahvePardakht = nahvePardakht + articleHesabDariObj.user = user_op + articleHesabDariObj.save() + + return redirect(request.META.get('HTTP_REFERER')) + + except: + return HttpResponse("خطا در ثبت ") + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewReportMali', raise_exception=True) +def rezayat_dashboard(request): + # دریافت تمامی نظرسنجیهای ثبت شده معتبر (که تاریخ نظرسنجی دارند) + valid_surveys = Action.objects.filter( + nazarDT__isnull=False, + grade__in=[5, 10, 15, 20] + ) + + # ۱. محاسبات شاخصهای کلیدی (KPIs) + total_surveys = valid_surveys.count() + avg_grade = valid_surveys.aggregate(Avg('grade'))['grade__avg'] or 0 + + # ۲. استخراج دادهها برای نمودار توزیع رضایت + grade_distribution = valid_surveys.values('grade').annotate(count=Count('id')) + chart_dict = {20: 0, 15: 0, 10: 0, 5: 0} + for item in grade_distribution: + g = item['grade'] + if g in chart_dict: + chart_dict[g] = item['count'] + + chart_labels = ['عالی (۲۰)', 'متوسط (۱۵)', 'ضعیف (۱۰)', 'بد (۵)'] + chart_data_list = [chart_dict[20], chart_dict[15], chart_dict[10], chart_dict[5]] + + # ۳. تبدیل امن آرایهها به JSON برای Chart.js + chart_labels_json = json.dumps(chart_labels, ensure_ascii=False) + chart_data_json = json.dumps(chart_data_list) + has_chart_data = sum(chart_data_list) > 0 + + # ۴. واکشی لیست مشتریان نیازمند پیگیری (شامل متوسط ۱۵، ضعیف ۱۰ و بد ۵) + low_score_actions = Action.objects.filter( + nazarDT__isnull=False, + grade__in=[5, 10, 15] # <-- امتیاز ۱۵ (متوسط) نیز اضافه شد + ).order_by('-nazarDT') + + allUsers = User.objects.filter().exclude(username='admin').exclude(username='fesahat') + + context = { + 'total_surveys': total_surveys, + 'avg_grade': round(avg_grade, 1), + 'chart_labels_json': chart_labels_json, + 'chart_data_json': chart_data_json, + 'has_chart_data': has_chart_data, + 'low_score_actions': low_score_actions, + # تعداد کل موارد نیازمند پیگیری (متوسط + ضعیف + بد) + 'unhappy_count': chart_dict[15] + chart_dict[10] + chart_dict[5], + 'allUsers': allUsers, + } + + return render(request, 'admin_panel/report_rezayat.html', context) diff --git a/admin_panel/views/store.py b/admin_panel/views/store.py new file mode 100644 index 0000000..4b5dab9 --- /dev/null +++ b/admin_panel/views/store.py @@ -0,0 +1,458 @@ +from django.db import transaction, connection +from django.db.models import Sum, Q +from django.shortcuts import redirect, render, get_object_or_404 +from django.http import HttpResponse, HttpResponseBadRequest +from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage +from django.core.exceptions import PermissionDenied, ValidationError +from django.views.decorators.http import require_POST +from django.contrib import messages +from django.contrib.auth.decorators import login_required, permission_required + +from ..models import StoreRoom, ProductCategory, Product, ProductInStore, StoreTransferRequest +from ..services import (create_transfer_request, approve_transfer_request, + reject_transfer_request, cancel_transfer_request) +from ._helpers import logger, _safe_int + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +def stores(request): + if request.user.username not in ('admin', 'office1', 'office2', 'office3', 'khatibi'): + all_store = StoreRoom.objects.filter(user__id=request.user.id).order_by('id')[:20] + else: + all_store = StoreRoom.objects.all().order_by('id')[:20] + data = {'all_store': all_store} + return render(request, 'admin_panel/stores.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +def store(request, s_id): + productCategory = ProductCategory.objects.all() + storeO = get_object_or_404(StoreRoom, id=s_id) + searchStatus = False + searchQS = request.POST.get('searchQS', '').strip() + mojodi = request.POST.get('mojodi', '') + + # ۱. محاسبه موجودی فیزیکی کل کالاها با یک کوئری تکضرب و سریع GROUP BY + stock_balances = ProductInStore.objects.filter( + StoreRoom=storeO, year=1400 + ).values('Product_id').annotate( + total=Sum('s_in') - Sum('s_out') + ).order_by() + stock_dict = {item['Product_id']: item['total'] for item in stock_balances} + + # ۲. محاسبه کل کالاهای در انتظار خروج + pending_out_balances = StoreTransferRequest.objects.filter( + source_store=storeO, status=StoreTransferRequest.Status.PENDING + ).values('product_id').annotate( + total=Sum('quantity') + ).order_by() + pending_out_dict = {item['product_id']: item['total'] for item in pending_out_balances} + + # ۳. محاسبه کل کالاهای در انتظار ورود + pending_in_balances = StoreTransferRequest.objects.filter( + target_store=storeO, status=StoreTransferRequest.Status.PENDING + ).values('product_id').annotate( + total=Sum('quantity') + ).order_by() + pending_in_dict = {item['product_id']: item['total'] for item in pending_in_balances} + + # ۴. استخراج سریع تمام آیدیهای منحصربهفرد مرتبط با این انبار در سطح حافظه + all_pids = set(stock_dict.keys()) | set(pending_out_dict.keys()) | set(pending_in_dict.keys()) + + # ۵. کوئری نهایی فوقبهینه برای خواندن کالاها (حل باگ N+1 با دستور select_related) + products_qs = Product.objects.select_related('ProductCategory').filter(id__in=all_pids) + + # اعمال فیلتر متنی جستجو در سطح دیتابیس + if searchQS: + products_qs = products_qs.filter(product_name__icontains=searchQS) + searchStatus = True + + # 🛠️ اصلاح فرآیند ترتیب: استفاده از 'id' جهت انطباق ۱۰۰٪ با ترتیب پیشفرض و سنتی دیتابیس شما + # نکته: اگر مایلید بر اساس زمان ایجاد مرتب شود، میتوانید آن را به 'createdDT' یا '-createdDT' تغییر دهید. + products_list = list(products_qs.order_by('id')) + + # ۶. معماری زمان ثابت O(1): چسباندن پرسرعت دیتاها در حافظه رم سرور + for prd in products_list: + prd.mojodi = stock_dict.get(prd.id, 0) + prd.pending_out = pending_out_dict.get(prd.id, 0) + prd.pending_in = pending_in_dict.get(prd.id, 0) + + # ۷. اعمال فیلترهای منطقی موجودی در لایه پایتون + if mojodi == "0": + products_list = [p for p in products_list if p.mojodi <= 0] + searchStatus = True + elif mojodi == "1": + products_list = [p for p in products_list if p.mojodi > 0] + searchStatus = True + + data = { + 'storeO': storeO, + 'productSum': products_list, + 's_id': s_id, + 'searchStatus': searchStatus, + "mojodi": mojodi, + 'djsearchQS': searchQS, + 'productCategory': productCategory + } + return render(request, 'admin_panel/store.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +def operations(request, s_id): + page = request.GET.get('page', 1) + productCategory = ProductCategory.objects.all() + storeO = get_object_or_404(StoreRoom, id=s_id) + + # بهینهسازی کلیدی: استفاده از select_related برای جلوگیری از کندی و پر شدن RAM دیتابیس + operationsList = ProductInStore.objects.filter( + StoreRoom=storeO, year=1400 + ).select_related('Product').order_by('-createdDT') + + paginator = Paginator(operationsList, 25) + try: + data_list = paginator.page(page) + except PageNotAnInteger: + data_list = paginator.page(1) + except EmptyPage: + data_list = paginator.page(paginator.num_pages) + + data = { + 'storeO': storeO, + 'operationsList': data_list, + 's_id': s_id, + 'productCategory': productCategory + } + return render(request, 'admin_panel/operations.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +def operationProduct(request, s_id, p_id): + productCategory = ProductCategory.objects.all() + storeO = get_object_or_404(StoreRoom, id=s_id) + + # بهینهسازی کلیدی در فیلتر اختصاصی محصول + operationsList = ProductInStore.objects.filter( + StoreRoom=storeO, year=1400, Product__id=p_id + ).select_related('Product').order_by('-createdDT') + + data = { + 'storeO': storeO, + 'operationsList': operationsList, + 's_id': s_id, + 'productCategory': productCategory + } + return render(request, 'admin_panel/operations.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +def newOperation(request, s_id, p_id): + productCategory = ProductCategory.objects.all() + storeO = StoreRoom.objects.get(id=s_id) + allStores = StoreRoom.objects.exclude(id=s_id) + product = Product.objects.get(id=p_id) + data = {'s_id': s_id,'p_id': p_id, 'allStores': allStores, 'storeO': storeO, 'product':product, 'productCategory': productCategory} + return render(request, 'admin_panel/newOperation.html', data ) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +def store_transfers(request, s_id): + """ + داشبورد و کارتابل جامع مدیریت انتقالهای انبار + """ + storeO = get_object_or_404(StoreRoom, id=s_id) + + # ۱. کارتابل ورودی (بارهایی که به سمت این انبار آمده و منتظر تایید ما هستند) + # استفاده از select_related برای جلوگیری از صدها کوئری اضافی به دیتابیس + incoming_pending = StoreTransferRequest.objects.filter( + target_store=storeO, + status=StoreTransferRequest.Status.PENDING + ).select_related('product', 'source_store', 'requester').order_by('-created_at') + + # ۲. کارتابل خروجی (بارهایی که ما فرستادیم و منتظر تایید انبار مقصد هستیم) + outgoing_pending = StoreTransferRequest.objects.filter( + source_store=storeO, + status=StoreTransferRequest.Status.PENDING + ).select_related('product', 'target_store', 'requester').order_by('-created_at') + + # ۳. تاریخچه انتقالات اخیر (۵۰ مورد آخر تعیین تکلیف شده برای این انبار) + history_list = StoreTransferRequest.objects.filter( + Q(source_store=storeO) | Q(target_store=storeO) + ).exclude( + status=StoreTransferRequest.Status.PENDING + ).select_related('product', 'source_store', 'target_store', 'approver').order_by('-action_date')[:50] + + data = { + 'storeO': storeO, + 's_id': s_id, + 'incoming_pending': incoming_pending, + 'outgoing_pending': outgoing_pending, + 'history_list': history_list, + } + return render(request, 'admin_panel/store_transfers.html', data) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +@require_POST +def process_transfer_action(request, transfer_id): + """ + پردازش امن اقدامات انباردار (تایید، رد، انصراف) با تراکنشهای اتمیک + """ + action = request.POST.get('action') + reason = request.POST.get('reason', '').strip() + + # دریافت درخواست انتقال + transfer = get_object_or_404(StoreTransferRequest, id=transfer_id) + + # تعیین انباری که کاربر از آنجا اقدام کرده جهت ریدایرکت صحیح + redirect_store_id = transfer.target_store_id if action in ['approve', 'reject'] else transfer.source_store_id + + try: + if action == 'approve': + approve_transfer_request(request_id=transfer.id, approver=request.user) + messages.success(request, f"انتقال {transfer.quantity} عدد {transfer.product.product_name} با موفقیت تایید و به موجودی انبار اضافه شد.") + + elif action == 'reject': + if not reason: + messages.error(request, "برای رد کردن بار، وارد کردن علت رد الزامی است.") + return redirect('admin_panel:store_transfers', s_id=redirect_store_id) + + reject_transfer_request(request_id=transfer.id, rejector=request.user, reason=reason) + messages.warning(request, f"درخواست انتقال بار رد شد و به انبار مبدا اطلاع داده شد.") + + elif action == 'cancel': + cancel_transfer_request(request_id=transfer.id, user=request.user) + messages.info(request, "درخواست انتقال توسط شما لغو گردید.") + + else: + messages.error(request, "دستور ارسالی نامعتبر است.") + + except ValidationError as e: + # نمایش خطاهای منطقی (مثلاً کمبود موجودی انبار مبدا در لحظه تایید) + error_text = ' '.join(e.messages) if hasattr(e, 'messages') else str(e) + messages.error(request, f"خطا در انجام عملیات: {error_text}") + except PermissionError as e: + messages.error(request, str(e)) + except Exception as e: + logger.error(f"Error processing transfer action #{transfer_id}: {str(e)}", exc_info=True) + messages.error(request, "خطای سیستمی در پردازش تراکنش رخ داد.") + + return redirect('admin_panel:store_transfers', s_id=redirect_store_id) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +def newStore(request): + storeName = request.POST.get('storeName', '') + newStore = StoreRoom() + newStore.store_name = storeName + newStore.save() + + return redirect('/panel/store/') + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +def productAdd(request): + namePrd = request.POST.get('namePrd', '') + category = request.POST.get('category', '') + price = request.POST.get('price', '') + mojodiAval = request.POST.get('mojodiAval', '') + storeroom = request.POST.get('storeroom', '') + + newProduct = Product() + newProduct.product_name = namePrd + newProduct.ProductCategory = ProductCategory.objects.get(id=category) + newProduct.product_price = price + newProduct.save() + + prd_in_store = ProductInStore() + prd_in_store.Product = newProduct + prd_in_store.StoreRoom = StoreRoom.objects.get(id=storeroom) + prd_in_store.s_in = mojodiAval + prd_in_store.desc = "موجودی اولیه: "+str(mojodiAval) + prd_in_store.movement_type = ProductInStore.MovementType.INITIAL + prd_in_store.save() + + #return HttpResponse(installDate) + return redirect('/panel/store/1') + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +def productEdit(request): + prd_code = request.POST.get('prd_code', '') + namePrd = request.POST.get('namePrd', '') + category = request.POST.get('category', '') + price = request.POST.get('price', '') + + #return HttpResponse(prd_code) + + editProduct = Product.objects.get(id=prd_code) + editProduct.product_name = namePrd + editProduct.ProductCategory = ProductCategory.objects.get(id=category) + editProduct.product_price = price + editProduct.save() + + return redirect('/panel/store/1') + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.ViewStore', raise_exception=True) +def productDel(request, p_id, s_id): + Product.objects.get(id=p_id).delete() + return redirect('/panel/store/'+str(s_id)) + + +@login_required(login_url='/panel/p_login/') +@permission_required('admin_panel.OnlyAnbar', raise_exception=True) +def operation(request): + if request.method != 'POST': + return HttpResponseBadRequest("متد ارسالی نامعتبر است.") + + user_op = request.user + user_store_room = get_object_or_404(StoreRoom, owners=user_op) + + # استفاده از توابع امن اختصاصی پروژه برای جداسازی مقادیر عددی + prd_id = _safe_int(request.POST.get('prd_id')) + action_type = request.POST.get('actionType', '') + tedad = _safe_int(request.POST.get('tedad')) + azanbar = _safe_int(request.POST.get('azanbar')) + beanbar = _safe_int(request.POST.get('beanbar')) + desc = request.POST.get('desc', '').strip() + + if tedad <= 0: + return HttpResponseBadRequest("تعداد وارد شده باید بیشتر از صفر باشد.") + + s_room = get_object_or_404(StoreRoom, id=azanbar) + product_obj = get_object_or_404(Product, id=prd_id) + + try: + # ===================================================================== + # بخش اول: انتقال بین انبارها (واگذاری کامل به لایه سرویس) + # ===================================================================== + if action_type == 'transfer': + if not beanbar: + return HttpResponse("انبار مقصد مشخص نشده است.") + + target_store = get_object_or_404(StoreRoom, id=_safe_int(beanbar)) + + # فراخوانی لایه سرویس برای ثبت درخواست انتقال (بدون تغییر مستقیم موجودی) + create_transfer_request( + source_store=s_room, + target_store=target_store, + product=product_obj, + quantity=tedad, + requester=request.user, + desc=desc or f"درخواست انتقال از انبار {s_room.store_name} به {target_store.store_name}" + ) + + logger.info( + f"Transfer request created: {tedad}x {product_obj.product_name} from Store #{s_room.id} to Store #{target_store.id} by User #{request.user.id}" + ) + return redirect('/panel/store/' + str(s_room.id)) + + # ===================================================================== + # بخش دوم: ورود و خروج دستی (کنترل مستقیم با Transaction و Lock) + # ===================================================================== + elif action_type in ['vorod', 'khoroj']: + user_s_room = get_object_or_404(StoreRoom, owners=user_op) + if not user_op.is_superuser and s_room != user_s_room: + return HttpResponse("شما دسترسی ورود / خروج به این انبار ندارید") + with transaction.atomic(): + # ساخت کوئری پایه برای دریافت تراکنشهای سال جاری کالا + qs = ProductInStore.objects.filter( + Product=product_obj, StoreRoom=s_room, year=1400 + ) + + # قفلگذاری ردیفها برای جلوگیری از Race Condition (در دیتابیسهای پشتیبان) + if connection.features.has_select_for_update: + qs = qs.select_for_update() + + locked_records = list(qs) + + # --- الف) عملیات ورود دستی --- + if action_type == 'vorod': + ProductInStore.objects.create( + StoreRoom=s_room, + Product=product_obj, + s_in=tedad, + s_out=0, + year=1400, + desc=f"ورود: {tedad} به انبار {s_room.store_name}#{desc}", + movement_type=ProductInStore.MovementType.DIRECT_IN + ) + + # --- ب) عملیات خروج دستی --- + elif action_type == 'khoroj': + # محاسبه سریع موجودی در رم بدون فشار مجدد به دیتابیس + total_in = sum(item.s_in for item in locked_records if item.s_in) + total_out = sum(item.s_out for item in locked_records if item.s_out) + mojodi_prd = total_in - total_out + + if mojodi_prd < tedad: + # تطابق ۱۰۰ درصدی با پاسخ متنی مورد انتظار فرانتاند + return HttpResponse("موجودی کافی نیست، موجودی فعلی: " + str(mojodi_prd)) + + ProductInStore.objects.create( + StoreRoom=s_room, + Product=product_obj, + s_in=0, + s_out=tedad, + year=1400, + desc=f"خروج: {tedad} از انبار {s_room.store_name}#{desc}", + movement_type=ProductInStore.MovementType.DIRECT_OUT + ) + + else: + return HttpResponseBadRequest("نوع عملیات نامعتبر است.") + + except ValidationError as e: + # مدیریت خطاهای اعتبارسنجی (مثل کمبود موجودی در لایه سرویس یا یکسان بودن انبارها) + error_msg = ' '.join(e.messages) if hasattr(e, 'messages') else str(e) + logger.warning(f"Validation error in store operation: {error_msg}") + return HttpResponse(error_msg) + + except PermissionDenied as e: + # مدیریت خطای دسترسی کاربر به انبار + logger.warning(f"Permission denied in store operation for user {request.user.id}: {str(e)}") + return HttpResponse("شما دسترسی لازم برای انجام این عملیات در این انبار را ندارید.", status=403) + + except Exception as e: + logger.error(f"Critical error in store operation view: {str(e)}", exc_info=True) + return HttpResponse("خطای سیستمی رخ داد. تراکنش لغو شد.", status=500) + + return redirect('/panel/store/' + str(s_room.id)) + + +@login_required(login_url='/panel/p_login/') +def productMojodi(request, p_id): + + # پیدا کردن انبار کاربر با متد filter به جای get برای جلوگیری از کرش سیستم + store_user = StoreRoom.objects.filter(owners=request.user).first() + + # اگر کاربر هنوز مالک هیچ انباری نشده است + if not store_user: + return HttpResponse("کاربر مالکیت انبار ندارد") # یا هر مقداری که فرانتاند انتظار دارد + + # محاسبه موجودی برای انبار پیدا شده + totals = ProductInStore.objects.filter( + Product_id=p_id, + StoreRoom=store_user, + year=1400 + ).aggregate( + total_in=Sum('s_in'), + total_out=Sum('s_out') + ) + + total_in = totals['total_in'] or 0 + total_out = totals['total_out'] or 0 + mojodi_prd = total_in - total_out + + return HttpResponse(str(mojodi_prd)) diff --git a/graphify-out/.graphify_labels.json b/graphify-out/.graphify_labels.json index 39e3688..22dd549 100644 --- a/graphify-out/.graphify_labels.json +++ b/graphify-out/.graphify_labels.json @@ -1 +1,95 @@ -{"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"} \ No newline at end of file +{ + "0": "views/store.py", + "1": "project_tree.py", + "2": "sqlite_db_backup.py", + "3": "django_db", + "4": "Customer ID Backup/New Factor Template", + "5": "views/customers.py", + "6": "cheque_inquiry.py", + "7": "admin_panel/templates/admin_panel/baseHesabdari.html", + "8": "django_db_models_deletion", + "9": "django_conf", + "10": "admin_panel/storeBK1.html", + "11": "ViewSmokeTests", + "12": "admin_panel/templates/admin_panel/customerAction.html", + "13": "User", + "14": "admin_panel/templates/admin_panel/bedehi.html", + "15": "django_contrib", + "16": "models/__init__.py", + "17": "admin_panel/templates/admin_panel/customerBase.html", + "18": "hesabdariCheckPassFail.html", + "19": "Reference guide", + "20": "ProductInStore", + "21": "graphify", + "22": "hesabdariResidNashode.html", + "23": "0017_factoriteam_garantyesh.py", + "24": "django_apps", + "25": "0002_auto_20220114_1616.py", + "26": "0021_alter_article_type.py", + "27": "Rip'n Fast. Fewer Tokens. Better Code.", + "28": "0027_alter_action_nazar.py", + "29": "admin_panel/entezar.html", + "30": "views/finance.py", + "31": "Customer Modals UI", + "32": "0029_alter_article_options.py", + "33": "0034_alter_article_sarresid.py", + "34": "0005_auto_20220121_2054.py", + "35": "0035_alter_article_sarresid.py", + "36": "0009_remove_storeroom_user.py", + "37": "0010_auto_20220122_1546.py", + "38": "0040_customer_laghv_bazdid.py", + "39": "0043_sarresid_user.py", + "40": "0048_alter_productinstore_options.py", + "41": "0032_article_paystatus.py", + "42": "0033_article_nahvepardakht.py", + "45": "0044_sarresid_desc.py", + "48": "GEMINI.md", + "49": "admin/migrations/__init__.py", + "50": "Customer Action Include", + "51": "New Customer Base Template", + "52": "Customer Feedback Partial", + "53": "Customer Factor Detail", + "54": "Customer Accounting Template", + "55": "Customer Factor List", + "56": "Customer Feedback Page", + "57": "commands/__init__.py", + "58": "management/__init__.py", + "59": "admin_panel/migrations/__init__.py", + "60": "Action List Template", + "61": "base.html", + "62": "Customer New Factor", + "63": "Customer New Factor V2", + "64": "Customer Satisfaction List", + "65": "Customer Satisfaction Partial", + "66": "Customer Check/Debt Management", + "67": "admin_panel/templates/admin_panel/customerBaseNew.html", + "68": "Customer List", + "69": "admin_panel/templates/admin_panel/entezarBK.html", + "70": "Financial Dashboard", + "71": "Accounting Main View", + "72": "admin_panel/templates/admin_panel/index.html", + "73": "New Inventory Operation", + "74": "Inventory Operations List", + "75": "Operations Backup Template", + "76": "Financial Report Template", + "77": "Debt Collection Dashboard", + "78": "Inventory Movement Report", + "79": "Customer Satisfaction Dashboard", + "80": "Check and Credit Report Template", + "81": "Satisfaction List Template", + "82": "Store Inventory Template", + "83": "Store Transfers Template", + "84": "Stores List Template", + "85": "toCurrency", + "86": "templatetags/__init__.py", + "87": "URL: newStore", + "88": "URL: process_transfer_action", + "89": "URL: rezayatEdit", + "90": "khatibi/__init__.py", + "91": "Extended Requirements File", + "92": "Requirements File", + "99": "ModelsPackageContractTests", + "102": "UrlContractTests", + "104": "system.py", + "107": "tests/__init__.py" +} diff --git a/graphify-out/.graphify_labels.json.sig b/graphify-out/.graphify_labels.json.sig index 421ada7..98a7695 100644 --- a/graphify-out/.graphify_labels.json.sig +++ b/graphify-out/.graphify_labels.json.sig @@ -1 +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"} \ No newline at end of file +{"0": "c3a36a9368a041d9", "1": "90337c8ac61b6b73", "2": "6076efb85d7e0cf6", "3": "102a7faeadcd9f37", "4": "c87f3f051be1d6cf", "5": "38d8150b6fcc29dd", "6": "8f0f51ff611eb425", "7": "828492c80f59c13e", "8": "5a34a83a0a037abe", "9": "ab8fcea052c3ff15", "10": "9701f1591d8fda6e", "11": "bf7d35550596f299", "12": "59f959de834a65cb", "13": "1b1f9f2676dbbf2f", "14": "138ab97b0f9bf63e", "15": "3cc770d8cc99f8ae", "16": "b3f1fcf44a1ef48c", "17": "42f1e68ac27c0389", "18": "90146abe85d9419f", "19": "21f888d34b160f31", "20": "a6cdf08fcc949de1", "21": "0f632fc57e9feeb0", "22": "066f74b181692719", "23": "a800ecffc01fc9d5", "24": "1cdbbc0afb5b81e2", "25": "a19c211702401a5b", "26": "89a02225d25a53c3", "27": "c9e7bf6ac46f263c", "28": "be1b722cf1a01583", "29": "7db54a3d7ae0017c", "30": "c6c68925b6415da0", "31": "03f8896e9b60ca96", "32": "cde232c2541ef2d0", "33": "c02bc9595eaedd36", "34": "6886ad7a5751faca", "35": "7714d721fe893ef5", "36": "a1a1f3c1cdff72cf", "37": "2f1621907db6f86f", "38": "ef8221c5fdeee7f8", "39": "eb04d6a3e3a79bf8", "40": "bf60a8731033e467", "41": "d5c0f5f6714c9991", "42": "9948fb8b548535ed", "45": "90e57f26f669372d", "48": "66ed76491a412a72", "49": "e67668b62ee6c62c", "50": "68aee39cd24db354", "51": "09b7297ea62919f2", "52": "054401d27ffaa4b2", "53": "dace81c1995fb321", "54": "19e301aeace95bb2", "55": "d6fd0cec4634a0b0", "56": "0230d355a6dabb54", "57": "5cebbb5528321795", "58": "536fe28d24c361f5", "59": "b08bdc2712cb0f12", "60": "6ce8444f504022cc", "61": "8021f52559633383", "62": "d8e34a3b3eb43ee0", "63": "056b8d6b5072289b", "64": "171c34c74a95481b", "65": "73e9eca6f2ca1c9b", "66": "dcc2230ae751c29a", "67": "2a617b932f5d92b2", "68": "2f5417a69eb1d15e", "69": "d55cb638532fdfeb", "70": "06cae4389208269f", "71": "e9c0a7be255e9b26", "72": "455b4ca39e55ecb0", "73": "8105c55538c34081", "74": "74304670b54c018f", "75": "a27f876eabb044b2", "76": "73f74dd7a40776d6", "77": "29d433d164b99f89", "78": "3f44aa48aa05d597", "79": "ca8a7efba0a3e579", "80": "5cc770af9d184d77", "81": "2d31fa723128b164", "82": "9d814c2520329846", "83": "f97d1a5c3a066598", "84": "14f84a6e4cd311d6", "85": "3a592d27b1f4ccc9", "86": "0bf6f9d0aeab4fd8", "87": "8b491bb3ff0649dd", "88": "638812cee15d1b9b", "89": "3dd16d68928a479c", "90": "72dad91d66d471ce", "91": "353a9d09eaae47ea", "92": "2d29260874184e4a", "99": "28cdf3baa198be4d", "102": "2de2cdee1890b458", "104": "c5743041b2101132", "107": "43bbf35b96423d46"} \ No newline at end of file diff --git a/graphify-out/.graphify_root b/graphify-out/.graphify_root index c6b8866..945c9b4 100644 --- a/graphify-out/.graphify_root +++ b/graphify-out/.graphify_root @@ -1 +1 @@ -D:\Projects\khatibi \ No newline at end of file +. \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index 8a0748c..0b28863 100644 --- a/graphify-out/GRAPH_REPORT.md +++ b/graphify-out/GRAPH_REPORT.md @@ -1,67 +1,82 @@ # Graph Report - khatibi (2026-10-09) ## Corpus Check -- cluster-only mode — file stats not available +- 124 files · ~93,934 words +- Verdict: corpus is large enough that graph structure adds value. +- Unclassified: 7 file(s) not represented in the graph (top: (none) 4, .env 2, .csv 1) ## 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 +- 821 nodes · 1291 edges · 93 communities (26 shown, 67 thin omitted) +- Extraction: 92% EXTRACTED · 8% INFERRED · 0% AMBIGUOUS · INFERRED: 103 edges (avg confidence: 0.86) +- Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `f19d8ee6` +- Built from commit: `6f36db63` - 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 +- views/store.py +- project_tree.py +- sqlite_db_backup.py +- django_db +- Customer ID Backup/New Factor Template +- views/customers.py +- cheque_inquiry.py +- admin_panel/templates/admin_panel/baseHesabdari.html +- django_db_models_deletion +- django_conf +- admin_panel/storeBK1.html +- ViewSmokeTests +- admin_panel/templates/admin_panel/customerAction.html +- User +- admin_panel/templates/admin_panel/bedehi.html +- django_contrib +- models/__init__.py +- admin_panel/templates/admin_panel/customerBase.html +- hesabdariCheckPassFail.html +- Reference guide +- ProductInStore +- graphify +- hesabdariResidNashode.html +- 0017_factoriteam_garantyesh.py +- django_apps +- 0002_auto_20220114_1616.py +- 0021_alter_article_type.py +- Rip'n Fast. Fewer Tokens. Better Code. +- 0027_alter_action_nazar.py +- admin_panel/entezar.html +- views/finance.py +- Customer Modals UI +- 0029_alter_article_options.py +- 0034_alter_article_sarresid.py +- 0005_auto_20220121_2054.py +- 0035_alter_article_sarresid.py +- 0009_remove_storeroom_user.py +- 0010_auto_20220122_1546.py +- 0040_customer_laghv_bazdid.py +- 0043_sarresid_user.py +- 0048_alter_productinstore_options.py +- 0032_article_paystatus.py +- 0033_article_nahvepardakht.py +- 0044_sarresid_desc.py +- GEMINI.md +- Customer Action Include - New Customer Base Template - Customer Feedback Partial -- Customer Invoice Detail +- Customer Factor Detail - Customer Accounting Template -- Customer Invoice List +- Customer Factor List - Customer Feedback Page - Action List Template -- New Customer Invoice Page -- New Customer Invoice V2 +- base.html +- Customer New Factor +- Customer New Factor V2 - Customer Satisfaction List - Customer Satisfaction Partial -- Customer Debt Management -- Customer List Page +- Customer Check/Debt Management +- admin_panel/templates/admin_panel/customerBaseNew.html +- Customer List - Financial Dashboard - Accounting Main View - New Inventory Operation @@ -71,37 +86,41 @@ - Debt Collection Dashboard - Inventory Movement Report - Customer Satisfaction Dashboard -- Check and Credit Report +- Check and Credit Report Template - Satisfaction List Template - Store Inventory Template - Store Transfers Template - Stores List Template +- toCurrency - Extended Requirements File -- Project Requirements File +- Requirements File +- ModelsPackageContractTests +- UrlContractTests +- system.py ## 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 +1. `Rip'n Fast. Fewer Tokens. Better Code.` - 23 edges +2. `User` - 22 edges +3. `create_transfer_request()` - 22 edges +4. `Reference guide` - 18 edges +5. `current_stock()` - 16 edges +6. `make_user()` - 15 edges +7. `stock_in()` - 15 edges +8. `Customer ID Backup/New Factor Template` - 15 edges +9. `approve_transfer_request()` - 13 edges +10. `make_product()` - 13 edges ## Surprising Connections (you probably didn't know these) +- `check_financial_discrepancy()` --uses--> `Customer` [INFERRED] + check_finance.py → admin/models.py +- `run_360_audit()` --uses--> `Customer` [INFERRED] + ghost_hunter.py → admin/models.py +- ``nest=` is a max, so it cannot tell a long function from a tangled one` --references--> `index()` [INFERRED] + ripwire - README.md → admin/views.py - `VisitQueue` --uses--> `User` [INFERRED] - admin_panel/models.py → admin/models.py -- `Factor` --uses--> `User` [INFERRED] - admin_panel/models.py → admin/models.py + admin_panel/models/actions.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 + admin_panel/models/store.py → admin/models.py ## Import Cycles - None detected. @@ -110,102 +129,160 @@ - **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] +- **Graphify Output Artifacts** — graphify-out_graph_json, graphify-out_wiki_index_md, graphify-out_graph_report_md [EXTRACTED 1.00] +- **Graphify Subcommands** — graphify_query, graphify_path, graphify_explain [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] +- **Bedehi Report Navigation** — django_urls_admin_panel_bedehi, django_urls_admin_panel_bedehikhadamat, django_urls_admin_panel_bedehinasb [EXTRACTED] - **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 List Page** — admin_panel_templates_admin_panel_entezar_html, concept_customer_data, concept_url_admin_panel_customers [INFERRED 0.80] - **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] +- **New Factor Creation Flow** — admin_panel_templates_admin_panel_customernewbackup_html, admin_panel_urls_newfactor, concept_client_side_form_logic, concept_customer, concept_category [INFERRED 0.85] +- **Customer Management UI Flow** — admin_panel_templates_admin_panel_customersbk_html, admin_panel_templates_admin_panel_customersbk_html_createcs, admin_panel_templates_admin_panel_customersbk_html_openrow, concept_customer_modal_ui [INFERRED 0.90] - **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] +- **New Factor Item Creation Flow** — admin_panel_templates_admin_panel_customeridfactorbackup_html_js, panel_urls_productmojodi, concept_product, concept_productcategory [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] +- **Accounting and Billing Flow** — admin_panel_templates_admin_panel_basehesabdari, concept_url_admin_panel_hesabdari, concept_url_admin_panel_bedehi [INFERRED] +- **Bedehi Template Data Contract** — admin_panel_templates_admin_panel_bedehi_html, django_context_variable_mandehesabkp, django_context_variable_articls [INFERRED] +- **Customer Action Creation Flow** — admin_panel_templates_admin_panel_customeraction, admin_panel_urls_customernewaction, concept_action_model [INFERRED] +- **Customer Management UI** — admin_panel_templates_admin_panel_customeridbackup_html, concept_customer, django_url_admin_panel_customeredit, api_endpoint_panel_customer_del, django_url_admin_panel_customerfactors [INFERRED] +- **Client-side Payment Processing Flow** — admin_panel_templates_admin_panel_hesabdaricheckpass_html, admin_panel_urls_passcheck, admin_panel_urls_pardakhtnesiye [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] +- **New Factor Creation Flow** — admin_panel_templates_admin_panel_customeridbackup_html, django_url_admin_panel_productsjson, api_endpoint_panel_productmojodi, admin_panel_templates_admin_panel_customeridbackup_html_orderlist, admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist, django_url_admin_panel_newfactor [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 [INFERRED] -## Communities (80 total, 66 thin omitted) +## Communities (93 total, 67 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" +### Community 0 - "views/store.py" Cohesion: 0.06 -Nodes (30): ArticleType, CacheTable, PhoneNumber, Product, Meta, ProductInStore, Meta, MovementType (+22 more) +Nodes (28): StoreRoom, Meta, StoreRoomOwner, StoreTransferRequest, Meta, Status, approve_transfer_request(), cancel_transfer_request() (+20 more) -### Community 2 - "Daily Reporting Command" -Cohesion: 0.08 -Nodes (15): Command, Article, Meta, Customer, Meta, Sarresid, toJalali(), remove_query_param() (+7 more) +### Community 1 - "project_tree.py" +Cohesion: 0.05 +Nodes (18): remove_query_param(), check_financial_discrepancy(), entrypoint.sh script, run_360_audit(), main(), Counts, format_header(), generate_snapshot() (+10 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 2 - "sqlite_db_backup.py" +Cohesion: 0.06 +Nodes (3): Command, Command, Command -### Community 4 - "Database Schema Migrations" +### Community 3 - "django_db" 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 4 - "Customer ID Backup/New Factor Template" +Cohesion: 0.07 +Nodes (17): Customer ID Backup/New Factor Template, all_products (JS variable), buildOrderList (JS function), orderList (JS variable), Client-side script in customerIDFactorBackup.html, URL: admin_panel:customerEdit, admin_panel:newFactor URL, Category Data (+9 more) -### Community 7 - "Initial Database Migrations" -Cohesion: 0.09 -Nodes (11): Migration, Migration, Migration, Migration, Migration, Migration, Migration, Migration (+3 more) +### Community 5 - "views/customers.py" +Cohesion: 0.05 +Nodes (22): Customer, Meta, PhoneNumber, customer(), customerDel(), customerEdit(), customerFactor(), customerFactors() (+14 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" +### Community 6 - "cheque_inquiry.py" Cohesion: 0.17 -Nodes (8): Factor, Meta, FactorIteam, InventoryException, newFactor(), newFactor2(), _parse_jalali_date(), _parse_timestamp() +Nodes (6): api_check_sabt_inquiry(), api_check_status_inquiry(), parse_cheque_result_html(), run_bpi_cheque_inquiry_logic(), run_cbi_sayad_inquiry_logic(), solve_base64_captcha() -### Community 11 - "Django Admin Configuration" +### Community 7 - "admin_panel/templates/admin_panel/baseHesabdari.html" +Cohesion: 0.08 +Nodes (22): admin_panel/base.html, Django Custom Tags: custom_tags, URL: admin_panel:ActionListUserToday, URL: admin_panel:bedehi, URL: admin_panel:customers, URL: admin_panel:entezar, URL: admin_panel:hesabdari, URL: admin_panel:hesabdari_residnashone (+14 more) + +### Community 8 - "django_db_models_deletion" +Cohesion: 0.08 +Nodes (12): Migration, Migration, Migration, Migration, Migration, Migration, Migration, Migration (+4 more) + +### Community 9 - "django_conf" +Cohesion: 0.09 +Nodes (9): Migration, Migration, Migration, Migration, Migration, Migration, Migration, Migration (+1 more) + +### Community 10 - "admin_panel/storeBK1.html" +Cohesion: 0.11 +Nodes (17): 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 (+9 more) + +### Community 12 - "admin_panel/templates/admin_panel/customerAction.html" +Cohesion: 0.16 +Nodes (10): admin_panel/templates/admin_panel/customerActionInc.html, admin_panel:customerNewAction URL, Action Data Model, DataTables Library, jQuery, User Data Model, Django 'url' template tag, Bulma CSS (+2 more) + +### Community 13 - "User" +Cohesion: 0.15 +Nodes (19): User, Action, VisitQueue, Factor, Meta, FactorIteam, UserProfile, ActionList() (+11 more) + +### Community 14 - "admin_panel/templates/admin_panel/bedehi.html" +Cohesion: 0.22 +Nodes (8): Articl Model, Customer Model, articls, toJalali, admin_panel:bedehi, admin_panel:bedehiKhadamat, admin_panel:bedehiNasb, admin_panel:customer + +### Community 15 - "django_contrib" 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 16 - "models/__init__.py" +Cohesion: 0.06 +Nodes (22): Customer, Factor, FactorIteam, PhoneNumber, Product, ProductCategory, ProductInStore, StoreRoom (+14 more) -### Community 15 - "Timezone-related Migrations" +### Community 18 - "hesabdariCheckPassFail.html" +Cohesion: 0.20 +Nodes (9): Customer Data Object, Factor Data Object, Sarresid Data Object, admin_panel:customerNew URL, admin_panel:pardakhtNesiye URL, /panel/passCheck/ URL, admin_panel.ViewReportMali Permission, jQuery JS Library (+1 more) + +### Community 19 - "Reference guide" +Cohesion: 0.07 +Nodes (27): 10. Quality evaluation, 11. Agent integration, 12. Supported languages and formats, 13. Performance, 14. Known limits, 15. Documentation, 16. Improvement, 17. License (+19 more) + +### Community 20 - "ProductInStore" +Cohesion: 0.14 +Nodes (8): Product, Meta, ProductCategory, ProductInStore, Meta, MovementType, ProductStockHistory, Meta + +### Community 21 - "graphify" +Cohesion: 0.22 +Nodes (8): Copilot Chat, graphify, graphify-out/graph.json, graphify-out/GRAPH_REPORT.md, graphify-out/wiki/index.md, graphify explain, graphify path, graphify query + +### Community 22 - "hesabdariResidNashode.html" +Cohesion: 0.21 +Nodes (11): admin_panel:customerNew, admin_panel:pardakhtNesiye, /panel/passCheck/, all_sarresid, mandehesabKP, admin_panel.ViewReportMali, jQuery, pDatepicker JS Library (+3 more) + +### Community 25 - "0002_auto_20220114_1616.py" 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 +### Community 27 - "Rip'n Fast. Fewer Tokens. Better Code." +Cohesion: 0.05 +Nodes (42): index(), 1. Codebase Navigation & Analysis (Ripwire vs. Graphify), 2. Dynamic Help, Self-Correction & Staleness, 3. Git Operations & Safety, 4. Development Server Lifecycle, 5. Environment, Frontend & PWA Safety, 6. End-to-End Browser Tests (Playwright), Project Operating & Agent Guidelines (+34 more) + +### Community 29 - "admin_panel/entezar.html" +Cohesion: 0.40 +Nodes (4): Customer Data Structure, kamaDatepicker Library, custom_tags, toJalali filter + +### Community 30 - "views/finance.py" +Cohesion: 0.14 +Nodes (21): Migration, Article, Meta, ArticleType, Sarresid, addSarresid(), bedehi(), bedehiKhadamat() (+13 more) + +### Community 31 - "Customer Modals UI" +Cohesion: 0.67 +Nodes (3): createCS click handler, openRow click handler, Customer Modals UI ## 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. +- **110 isolated node(s):** `DataTables Library`, `Customer Data Object`, `Factor Data Object`, `admin_panel:pardakhtNesiye URL`, `/panel/passCheck/ URL` (+105 more) + These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 398 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) +- **67 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._ +- **Why does `Rip'n Fast. Fewer Tokens. Better Code.` connect `Rip'n Fast. Fewer Tokens. Better Code.` to `Reference guide`?** + _High betweenness centrality (0.117) - this node is a cross-community bridge._ +- **Are the 21 inferred relationships involving `User` (e.g. with `Action` and `VisitQueue`) actually correct?** + _`User` has 21 INFERRED edges - model-reasoned connections that need verification._ +- **What connects `DataTables Library`, `Customer Data Object`, `Factor Data Object` to the rest of the system?** + _110 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `views/store.py` be split into smaller, more focused modules?** + _Cohesion score 0.06247086247086247 - nodes in this community are weakly interconnected._ +- **Why does `index()` connect `Rip'n Fast. Fewer Tokens. Better Code.` to `views/customers.py`?** + _High betweenness centrality (0.116) - this node is a cross-community bridge._ +- **Should `project_tree.py` be split into smaller, more focused modules?** + _Cohesion score 0.052600818234950324 - nodes in this community are weakly interconnected._ ### Low-confidence Hints _AMBIGUOUS edges — the extractor was unsure. Verify before acting on these._ diff --git a/graphify-out/backup-graph-preibackupignore-20261009-191817.json b/graphify-out/backup-graph-preibackupignore-20261009-191817.json new file mode 100644 index 0000000..e81e9fb --- /dev/null +++ b/graphify-out/backup-graph-preibackupignore-20261009-191817.json @@ -0,0 +1,32621 @@ +{ + "directed": false, + "multigraph": false, + "graph": { + "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": "graphify_output_artifacts", + "label": "Graphify Output Artifacts", + "nodes": [ + "graphify-out_graph_json", + "graphify-out_wiki_index_md", + "graphify-out_graph_report_md" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "id": "graphify_subcommands", + "label": "Graphify Subcommands", + "nodes": [ + "graphify_query", + "graphify_path", + "graphify_explain" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "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": "bedehi_report_navigation", + "label": "Bedehi Report Navigation", + "nodes": [ + "django_urls_admin_panel_bedehi", + "django_urls_admin_panel_bedehikhadamat", + "django_urls_admin_panel_bedehinasb" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "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_list_page", + "label": "Customer List Page", + "nodes": [ + "admin_panel_templates_admin_panel_entezar_html", + "concept_customer_data", + "concept_url_admin_panel_customers" + ], + "relation": "form", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/entezar.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": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customernewbackup_html", + "admin_panel_urls_newfactor", + "concept_client_side_form_logic", + "concept_customer", + "concept_category" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html" + }, + { + "id": "customer_management_ui_flow", + "label": "Customer Management UI Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customersbk_html", + "admin_panel_templates_admin_panel_customersbk_html_createcs", + "admin_panel_templates_admin_panel_customersbk_html_openrow", + "concept_customer_modal_ui" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.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": "new_factor_item_creation_flow", + "label": "New Factor Item Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "panel_urls_productmojodi", + "concept_product", + "concept_productcategory" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.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", + "concept_url_admin_panel_hesabdari", + "concept_url_admin_panel_bedehi" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "bedehi_template_data_contract", + "label": "Bedehi Template Data Contract", + "nodes": [ + "admin_panel_templates_admin_panel_bedehi_html", + "django_context_variable_mandehesabkp", + "django_context_variable_articls" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "customer_action_creation_flow", + "label": "Customer Action Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeraction", + "admin_panel_urls_customernewaction", + "concept_action_model" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "customer_management_ui", + "label": "Customer Management UI", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "concept_customer", + "django_url_admin_panel_customeredit", + "api_endpoint_panel_customer_del", + "django_url_admin_panel_customerfactors" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "hesabdaricheckpass_payment_flow", + "label": "Client-side Payment Processing Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "admin_panel_urls_passcheck", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "nesiye_payment_flow", + "label": "Nesiye Payment Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdariresidnashode", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "django_url_admin_panel_productsjson", + "api_endpoint_panel_productmojodi", + "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "django_url_admin_panel_newfactor" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "store_management_flow", + "label": "Store and Inventory Management Flow", + "nodes": [ + "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" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + } + ], + "schema_version": 1, + "graphify_version": "0.9.82" + }, + "nodes": [ + { + "id": "tests_test_inventory_transferworkflowtests", + "label": "TransferWorkflowTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "transferworkflowtests", + "source_file": "tests/test_inventory.py", + "source_location": "L99" + }, + { + "id": "admin_panel_models_customers_customer", + "label": "Customer", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 100, + "community_name": "Customer", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "customer", + "source_file": "admin_panel/models/customers.py", + "source_location": "L4" + }, + { + "id": "admin_panel_models_customers_customer_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 100, + "community_name": "Customer", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/customers.py", + "source_location": "L5" + }, + { + "id": "admin_panel_models_customers_phonenumber", + "label": "PhoneNumber", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 100, + "community_name": "Customer", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "phonenumber", + "source_file": "admin_panel/models/customers.py", + "source_location": "L36" + }, + { + "id": "tests_test_urls_contract_urlcontracttests", + "label": "UrlContractTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": "urlcontracttests", + "source_file": "tests/test_urls_contract.py", + "source_location": "L117" + }, + { + "id": "backups_refactor_2026_10_09_models_customer", + "label": "Customer", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 103, + "community_name": "Customer", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "customer", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L30" + }, + { + "id": "backups_refactor_2026_10_09_models_customer_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 103, + "community_name": "Customer", + "file_type": "code", + "norm_label": "meta", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L31" + }, + { + "id": "admin_panel_models_system_cachetable", + "label": "CacheTable", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 104, + "community_name": "system.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "cachetable", + "source_file": "admin_panel/models/system.py", + "source_location": "L4" + }, + { + "id": "backups_refactor_2026_10_09_models_productstockhistory", + "label": "ProductStockHistory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 105, + "community_name": "ProductStockHistory", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productstockhistory", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L300" + }, + { + "id": "backups_refactor_2026_10_09_models_productstockhistory_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 105, + "community_name": "ProductStockHistory", + "file_type": "code", + "norm_label": "meta", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L308" + }, + { + "id": "admin_panel_migrations_0047_alter_productinstore_movement_type_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 106, + "community_name": "0047_alter_productinstore_movement_type.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L6" + }, + { + "id": "backups_refactor_2026_10_09_models_articletype", + "label": "ArticleType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "articletype", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L428" + }, + { + "id": "backups_refactor_2026_10_09_models_cachetable", + "label": "CacheTable", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "cachetable", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L510" + }, + { + "id": "backups_refactor_2026_10_09_models_phonenumber", + "label": "PhoneNumber", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "phonenumber", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L61" + }, + { + "id": "backups_refactor_2026_10_09_models_storeroom", + "label": "StoreRoom", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroom", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L69" + }, + { + "id": "backups_refactor_2026_10_09_models_storeroom_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "meta", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L70" + }, + { + "id": "backups_refactor_2026_10_09_models_storetransferrequest", + "label": "StoreTransferRequest", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storetransferrequest", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L315" + }, + { + "id": "backups_refactor_2026_10_09_models_storetransferrequest_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "meta", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L387" + }, + { + "id": "backups_refactor_2026_10_09_models_storetransferrequest_status", + "label": "Status", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "status", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L316" + }, + { + "id": "admin_models_user", + "label": "User", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "user", + "source_file": "admin/models.py", + "source_location": "L4" + }, + { + "id": "admin_panel_models_actions_action", + "label": "Action", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "action", + "source_file": "admin_panel/models/actions.py", + "source_location": "L24" + }, + { + "id": "admin_panel_models_actions_visitqueue", + "label": "VisitQueue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "visitqueue", + "source_file": "admin_panel/models/actions.py", + "source_location": "L5" + }, + { + "id": "admin_panel_models_factors_factor", + "label": "Factor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factor", + "source_file": "admin_panel/models/factors.py", + "source_location": "L5" + }, + { + "id": "admin_panel_models_factors_factor_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/factors.py", + "source_location": "L6" + }, + { + "id": "admin_panel_models_factors_factoriteam", + "label": "FactorIteam", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factoriteam", + "source_file": "admin_panel/models/factors.py", + "source_location": "L52" + }, + { + "id": "admin_panel_models_store_storeroom", + "label": "StoreRoom", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroom", + "source_file": "admin_panel/models/store.py", + "source_location": "L6" + }, + { + "id": "admin_panel_models_store_storeroom_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/store.py", + "source_location": "L7" + }, + { + "id": "admin_panel_models_store_storeroomowner", + "label": "StoreRoomOwner", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomowner", + "source_file": "admin_panel/models/store.py", + "source_location": "L33" + }, + { + "id": "admin_panel_models_store_storetransferrequest", + "label": "StoreTransferRequest", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storetransferrequest", + "source_file": "admin_panel/models/store.py", + "source_location": "L65" + }, + { + "id": "admin_panel_models_store_storetransferrequest_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/store.py", + "source_location": "L137" + }, + { + "id": "admin_panel_models_store_storetransferrequest_status", + "label": "Status", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "status", + "source_file": "admin_panel/models/store.py", + "source_location": "L66" + }, + { + "id": "admin_panel_models_users_userprofile", + "label": "UserProfile", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "userprofile", + "source_file": "admin_panel/models/users.py", + "source_location": "L6" + }, + { + "id": "backups_refactor_2026_10_09_models_factor", + "label": "Factor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factor", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L135" + }, + { + "id": "backups_refactor_2026_10_09_models_factor_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "meta", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L136" + }, + { + "id": "backups_refactor_2026_10_09_models_storeroomowner", + "label": "StoreRoomOwner", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomowner", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L96" + }, + { + "id": "backups_refactor_2026_10_09_models_userprofile", + "label": "UserProfile", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "userprofile", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L15" + }, + { + "id": "backups_refactor_2026_10_09_models_visitqueue", + "label": "VisitQueue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "visitqueue", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L409" + }, + { + "id": "admin_panel_admin_storeroomadmin", + "label": "StoreRoomAdmin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomadmin", + "source_file": "admin_panel/admin.py", + "source_location": "L64" + }, + { + "id": "admin_panel_admin_storeroomownerinline", + "label": "StoreRoomOwnerInline", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomownerinline", + "source_file": "admin_panel/admin.py", + "source_location": "L53" + }, + { + "id": "admin_panel_admin_storetransferrequestadmin", + "label": "StoreTransferRequestAdmin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storetransferrequestadmin", + "source_file": "admin_panel/admin.py", + "source_location": "L24" + }, + { + "id": "backups_refactor_2026_10_09_admin_storeroomadmin", + "label": "StoreRoomAdmin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomadmin", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L64" + }, + { + "id": "backups_refactor_2026_10_09_admin_storeroomownerinline", + "label": "StoreRoomOwnerInline", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomownerinline", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L53" + }, + { + "id": "backups_refactor_2026_10_09_admin_storetransferrequestadmin", + "label": "StoreTransferRequestAdmin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storetransferrequestadmin", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L24" + }, + { + "id": "admin_models_customer", + "label": "Customer", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "customer", + "source_file": "admin/models.py", + "source_location": "L19" + }, + { + "id": "admin_models_factor", + "label": "Factor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factor", + "source_file": "admin/models.py", + "source_location": "L44" + }, + { + "id": "admin_models_factoriteam", + "label": "FactorIteam", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factoriteam", + "source_file": "admin/models.py", + "source_location": "L69" + }, + { + "id": "admin_models_phonenumber", + "label": "PhoneNumber", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "phonenumber", + "source_file": "admin/models.py", + "source_location": "L24" + }, + { + "id": "admin_models_product", + "label": "Product", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "product", + "source_file": "admin/models.py", + "source_location": "L34" + }, + { + "id": "admin_models_productcategory", + "label": "ProductCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productcategory", + "source_file": "admin/models.py", + "source_location": "L31" + }, + { + "id": "admin_models_productinstore", + "label": "ProductInStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productinstore", + "source_file": "admin/models.py", + "source_location": "L39" + }, + { + "id": "admin_models_storeroom", + "label": "StoreRoom", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroom", + "source_file": "admin/models.py", + "source_location": "L28" + }, + { + "id": "admin_models_visitqueue", + "label": "VisitQueue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "visitqueue", + "source_file": "admin/models.py", + "source_location": "L76" + }, + { + "id": "admin_panel_management_commands_send_daily_report_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12" + }, + { + "id": "tests_test_customers_customercrudtests", + "label": "CustomerCrudTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "customercrudtests", + "source_file": "tests/test_customers.py", + "source_location": "L12" + }, + { + "id": "tests_test_customers_customerdeleteguardtests", + "label": "CustomerDeleteGuardTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "customerdeleteguardtests", + "source_file": "tests/test_customers.py", + "source_location": "L59" + }, + { + "id": "tests_test_factors_factorsoftdeletetests", + "label": "FactorSoftDeleteTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "factorsoftdeletetests", + "source_file": "tests/test_factors.py", + "source_location": "L15" + }, + { + "id": "tests_test_factors_newfactor2viewtests", + "label": "NewFactor2ViewTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "newfactor2viewtests", + "source_file": "tests/test_factors.py", + "source_location": "L46" + }, + { + "id": "tests_test_inventory_productinstoremathtests", + "label": "ProductInStoreMathTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "productinstoremathtests", + "source_file": "tests/test_inventory.py", + "source_location": "L19" + }, + { + "id": "tests_test_view_smoke_viewsmoketests", + "label": "ViewSmokeTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "viewsmoketests", + "source_file": "tests/test_view_smoke.py", + "source_location": "L30" + }, + { + "id": "admin_panel_management_commands_gt_esh_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12" + }, + { + "id": "admin_panel_models_products_product", + "label": "Product", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "product", + "source_file": "admin_panel/models/products.py", + "source_location": "L12" + }, + { + "id": "admin_panel_models_products_product_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/products.py", + "source_location": "L13" + }, + { + "id": "admin_panel_models_products_productcategory", + "label": "ProductCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productcategory", + "source_file": "admin_panel/models/products.py", + "source_location": "L5" + }, + { + "id": "admin_panel_models_products_productinstore", + "label": "ProductInStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productinstore", + "source_file": "admin_panel/models/products.py", + "source_location": "L28" + }, + { + "id": "admin_panel_models_products_productinstore_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/products.py", + "source_location": "L29" + }, + { + "id": "admin_panel_models_products_productinstore_movementtype", + "label": "MovementType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "movementtype", + "source_file": "admin_panel/models/products.py", + "source_location": "L35" + }, + { + "id": "admin_panel_models_store_productstockhistory", + "label": "ProductStockHistory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productstockhistory", + "source_file": "admin_panel/models/store.py", + "source_location": "L50" + }, + { + "id": "admin_panel_models_store_productstockhistory_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/store.py", + "source_location": "L58" + }, + { + "id": "admin_apps_adminconfig", + "label": "AdminConfig", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "adminconfig", + "source_file": "admin/apps.py", + "source_location": "L4" + }, + { + "id": "admin_panel_apps_adminpanelconfig", + "label": "AdminPanelConfig", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "adminpanelconfig", + "source_file": "admin_panel/apps.py", + "source_location": "L4" + }, + { + "id": "backups_refactor_2026_10_09_apps_adminpanelconfig", + "label": "AdminPanelConfig", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "adminpanelconfig", + "source_file": "backups/refactor-2026-10-09/apps.py", + "source_location": "L4" + }, + { + "id": "admin_panel_migrations_0002_auto_20220114_1616_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0003_auto_20220115_1401_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0031_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0004_factor_paytype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0013_alter_factor_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0014_auto_20220123_1348_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0017_factoriteam_garantyesh_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0020_auto_20220126_1532_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0021_alter_article_type_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0022_article_typepy_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0023_alter_article_typepy_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0027_alter_action_nazar_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0029_alter_article_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0034_alter_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0035_alter_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0037_sarresid_sarresiddt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0040_customer_laghv_bazdid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0048_alter_productinstore_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0055_action_nextnazardt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0056_auto_20260731_1824_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L7" + }, + { + "id": "admin_panel_models_finance_article", + "label": "Article", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "article", + "source_file": "admin_panel/models/finance.py", + "source_location": "L12" + }, + { + "id": "admin_panel_models_finance_article_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/finance.py", + "source_location": "L13" + }, + { + "id": "admin_panel_models_finance_articletype", + "label": "ArticleType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "articletype", + "source_file": "admin_panel/models/finance.py", + "source_location": "L8" + }, + { + "id": "admin_panel_models_finance_sarresid", + "label": "Sarresid", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "sarresid", + "source_file": "admin_panel/models/finance.py", + "source_location": "L33" + }, + { + "id": "project_tree_counts", + "label": "Counts", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": "counts", + "source_file": "project_tree.py", + "source_location": "L66" + }, + { + "id": "admin_panel_migrations_0005_auto_20220121_2054_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 34, + "community_name": "0005_auto_20220121_2054.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0006_auto_20220121_2100_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 35, + "community_name": "0006_auto_20220121_2100.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0009_remove_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 36, + "community_name": "0009_remove_storeroom_user.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0010_auto_20220122_1546_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 37, + "community_name": "0010_auto_20220122_1546.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0025_action_actiontype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 38, + "community_name": "0025_action_actiontype.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0028_action_grade_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 39, + "community_name": "0028_action_grade.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0030_auto_20220414_1047_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 40, + "community_name": "0030_auto_20220414_1047.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0032_article_paystatus_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 41, + "community_name": "0032_article_paystatus.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0033_article_nahvepardakht_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 42, + "community_name": "0033_article_nahvepardakht.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0039_customer_last_bazdid_dt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 43, + "community_name": "0039_customer_last_bazdid_dt.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0041_auto_20240216_1607_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 44, + "community_name": "0041_auto_20240216_1607.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0044_sarresid_desc_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 45, + "community_name": "0044_sarresid_desc.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L6" + }, + { + "id": "backups_refactor_2026_10_09_models_product", + "label": "Product", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "product", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L119" + }, + { + "id": "backups_refactor_2026_10_09_models_product_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "meta", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L120" + }, + { + "id": "backups_refactor_2026_10_09_models_productcategory", + "label": "ProductCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productcategory", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L112" + }, + { + "id": "admin_panel_migrations_0049_alter_productinstore_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 47, + "community_name": "0049_alter_productinstore_options.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_views_helpers_inventoryexception", + "label": "InventoryException", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "inventoryexception", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L12" + }, + { + "id": "backups_refactor_2026_10_09_models_action", + "label": "Action", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "action", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L453" + }, + { + "id": "admin_panel_migrations_0001_initial_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0007_productinstore_factor_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0008_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0012_visitqueue_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0018_alter_factoriteam_product_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0019_article_articletype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0024_action_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0036_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0038_auto_20240213_1735_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0046_auto_20260624_1818_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0054_auto_20260715_2250_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0011_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0015_auto_20220124_0858_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0016_factor_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0026_auto_20220209_1924_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0042_article_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0043_sarresid_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0045_auto_20260610_1421_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0050_storetransferrequest_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0051_auto_20260705_1356_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0052_storeroomowner_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0053_storeroom_owners_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L7" + }, + { + "id": "backups_refactor_2026_10_09_models_productinstore", + "label": "ProductInStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productinstore", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L181" + }, + { + "id": "backups_refactor_2026_10_09_models_productinstore_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "meta", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L182" + }, + { + "id": "backups_refactor_2026_10_09_models_productinstore_movementtype", + "label": "MovementType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "movementtype", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L188" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17" + }, + { + "id": "backups_refactor_2026_10_09_models_article", + "label": "Article", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "article", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L432" + }, + { + "id": "backups_refactor_2026_10_09_models_article_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "norm_label": "meta", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L433" + }, + { + "id": "backups_refactor_2026_10_09_models_factoriteam", + "label": "FactorIteam", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factoriteam", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L400" + }, + { + "id": "backups_refactor_2026_10_09_models_sarresid", + "label": "Sarresid", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "sarresid", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L470" + }, + { + "id": "backups_refactor_2026_10_09_views_inventoryexception", + "label": "InventoryException", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "code", + "norm_label": "inventoryexception", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L38" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests", + "label": "ModelsPackageContractTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": "modelspackagecontracttests", + "source_file": "tests/test_models_contract.py", + "source_location": "L40" + }, + { + "id": "admin_panel_services_approve_transfer_request", + "label": "approve_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "approve_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L98" + }, + { + "id": "admin_panel_services_cancel_transfer_request", + "label": "cancel_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "cancel_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L186" + }, + { + "id": "admin_panel_services_check_source_store_permission", + "label": "_check_source_store_permission()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "_check_source_store_permission()", + "source_file": "admin_panel/services.py", + "source_location": "L29" + }, + { + "id": "admin_panel_services_check_target_store_permission", + "label": "_check_target_store_permission()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "_check_target_store_permission()", + "source_file": "admin_panel/services.py", + "source_location": "L19" + }, + { + "id": "admin_panel_services_create_transfer_request", + "label": "create_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "create_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L55" + }, + { + "id": "admin_panel_services_get_product_current_stock", + "label": "get_product_current_stock()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "get_product_current_stock()", + "source_file": "admin_panel/services.py", + "source_location": "L39" + }, + { + "id": "admin_panel_services_reject_transfer_request", + "label": "reject_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "reject_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L159" + }, + { + "id": "admin_panel_views_store_newoperation", + "label": "newOperation()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "newoperation()", + "source_file": "admin_panel/views/store.py", + "source_location": "L153" + }, + { + "id": "admin_panel_views_store_newstore", + "label": "newStore()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "newstore()", + "source_file": "admin_panel/views/store.py", + "source_location": "L251" + }, + { + "id": "admin_panel_views_store_operation", + "label": "operation()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "operation()", + "source_file": "admin_panel/views/store.py", + "source_location": "L315" + }, + { + "id": "admin_panel_views_store_operationproduct", + "label": "operationProduct()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "operationproduct()", + "source_file": "admin_panel/views/store.py", + "source_location": "L133" + }, + { + "id": "admin_panel_views_store_operations", + "label": "operations()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "operations()", + "source_file": "admin_panel/views/store.py", + "source_location": "L104" + }, + { + "id": "admin_panel_views_store_process_transfer_action", + "label": "process_transfer_action()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "process_transfer_action()", + "source_file": "admin_panel/views/store.py", + "source_location": "L203" + }, + { + "id": "admin_panel_views_store_productadd", + "label": "productAdd()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "productadd()", + "source_file": "admin_panel/views/store.py", + "source_location": "L262" + }, + { + "id": "admin_panel_views_store_productdel", + "label": "productDel()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "productdel()", + "source_file": "admin_panel/views/store.py", + "source_location": "L308" + }, + { + "id": "admin_panel_views_store_productedit", + "label": "productEdit()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "productedit()", + "source_file": "admin_panel/views/store.py", + "source_location": "L289" + }, + { + "id": "admin_panel_views_store_productmojodi", + "label": "productMojodi()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "productmojodi()", + "source_file": "admin_panel/views/store.py", + "source_location": "L435" + }, + { + "id": "admin_panel_views_store_store", + "label": "store()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "store()", + "source_file": "admin_panel/views/store.py", + "source_location": "L30" + }, + { + "id": "admin_panel_views_store_store_transfers", + "label": "store_transfers()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "store_transfers()", + "source_file": "admin_panel/views/store.py", + "source_location": "L164" + }, + { + "id": "admin_panel_views_store_stores", + "label": "stores()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "stores()", + "source_file": "admin_panel/views/store.py", + "source_location": "L19" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "label": ".test_approval_permission_denied_for_non_target_member()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_approval_permission_denied_for_non_target_member()", + "source_file": "tests/test_inventory.py", + "source_location": "L194" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "label": ".test_approve_moves_stock_and_links_transactions()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_approve_moves_stock_and_links_transactions()", + "source_file": "tests/test_inventory.py", + "source_location": "L142" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_cancel_by_requester", + "label": ".test_cancel_by_requester()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_cancel_by_requester()", + "source_file": "tests/test_inventory.py", + "source_location": "L178" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_create_rejects_insufficient_stock", + "label": ".test_create_rejects_insufficient_stock()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_create_rejects_insufficient_stock()", + "source_file": "tests/test_inventory.py", + "source_location": "L121" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_create_rejects_non_positive_quantity", + "label": ".test_create_rejects_non_positive_quantity()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_create_rejects_non_positive_quantity()", + "source_file": "tests/test_inventory.py", + "source_location": "L135" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_create_rejects_same_store", + "label": ".test_create_rejects_same_store()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_create_rejects_same_store()", + "source_file": "tests/test_inventory.py", + "source_location": "L128" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_create_transfer_request_pending", + "label": ".test_create_transfer_request_pending()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_create_transfer_request_pending()", + "source_file": "tests/test_inventory.py", + "source_location": "L108" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_double_approval_is_rejected", + "label": ".test_double_approval_is_rejected()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_double_approval_is_rejected()", + "source_file": "tests/test_inventory.py", + "source_location": "L156" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_permission_denied_for_outsider", + "label": ".test_permission_denied_for_outsider()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_permission_denied_for_outsider()", + "source_file": "tests/test_inventory.py", + "source_location": "L186" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "label": ".test_reject_keeps_stock_untouched()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_reject_keeps_stock_untouched()", + "source_file": "tests/test_inventory.py", + "source_location": "L166" + }, + { + "id": "admin_panel_context_processor_dashboxdata", + "label": "dashBoxData()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "dashboxdata()", + "source_file": "admin_panel/context_processor.py", + "source_location": "L7" + }, + { + "id": "admin_panel_templatetags_custom_tags_has_group", + "label": "has_group()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "has_group()", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L11" + }, + { + "id": "admin_panel_templatetags_custom_tags_tojalali", + "label": "toJalali()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "tojalali()", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L7" + }, + { + "id": "admin_panel_templatetags_remove_q_p_remove_query_param", + "label": "remove_query_param()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "remove_query_param()", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L6" + }, + { + "id": "backups_refactor_2026_10_09_context_processor_dashboxdata", + "label": "dashBoxData()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "dashboxdata()", + "source_file": "backups/refactor-2026-10-09/context_processor.py", + "source_location": "L7" + }, + { + "id": "check_finance_check_financial_discrepancy", + "label": "check_financial_discrepancy()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "check_financial_discrepancy()", + "source_file": "check_finance.py", + "source_location": "L13" + }, + { + "id": "ghost_hunter_run_360_audit", + "label": "run_360_audit()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "run_360_audit()", + "source_file": "ghost_hunter.py", + "source_location": "L12" + }, + { + "id": "reconciliation_tool_run_audit", + "label": "run_audit()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "run_audit()", + "source_file": "reconciliation_tool.py", + "source_location": "L21" + }, + { + "id": "admin_panel_models_customers_customer_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 100, + "community_name": "Customer", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models/customers.py", + "source_location": "L30" + }, + { + "id": "admin_panel_models_customers_customer_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 100, + "community_name": "Customer", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/customers.py", + "source_location": "L26" + }, + { + "id": "admin_panel_models_customers_phonenumber_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 100, + "community_name": "Customer", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/customers.py", + "source_location": "L41" + }, + { + "id": "tests_test_urls_contract_urlcontracttests_all_names", + "label": "._all_names()", + "_callable": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": "._all_names()", + "source_file": "tests/test_urls_contract.py", + "source_location": "L119" + }, + { + "id": "tests_test_urls_contract_urlcontracttests_test_all_view_callables_are_importable", + "label": ".test_all_view_callables_are_importable()", + "_callable": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": ".test_all_view_callables_are_importable()", + "source_file": "tests/test_urls_contract.py", + "source_location": "L145" + }, + { + "id": "tests_test_urls_contract_urlcontracttests_test_every_url_reverses", + "label": ".test_every_url_reverses()", + "_callable": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": ".test_every_url_reverses()", + "source_file": "tests/test_urls_contract.py", + "source_location": "L136" + }, + { + "id": "tests_test_urls_contract_urlcontracttests_test_url_name_snapshot_unchanged", + "label": ".test_url_name_snapshot_unchanged()", + "_callable": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": ".test_url_name_snapshot_unchanged()", + "source_file": "tests/test_urls_contract.py", + "source_location": "L123" + }, + { + "id": "backups_refactor_2026_10_09_models_customer_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 103, + "community_name": "Customer", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L56" + }, + { + "id": "backups_refactor_2026_10_09_models_customer_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 103, + "community_name": "Customer", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L52" + }, + { + "id": "backups_refactor_2026_10_09_views_customersadd", + "label": "customersAdd()", + "_callable": true, + "_origin": "ast", + "community": 103, + "community_name": "Customer", + "file_type": "code", + "norm_label": "customersadd()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L987" + }, + { + "id": "admin_panel_models_system_cachetable_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 104, + "community_name": "system.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/system.py", + "source_location": "L8" + }, + { + "id": "backups_refactor_2026_10_09_models_productstockhistory_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 105, + "community_name": "ProductStockHistory", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L311" + }, + { + "id": "backups_refactor_2026_10_09_models_cachetable_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L514" + }, + { + "id": "backups_refactor_2026_10_09_models_phonenumber_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L66" + }, + { + "id": "backups_refactor_2026_10_09_models_storeroom_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L92" + }, + { + "id": "backups_refactor_2026_10_09_models_storetransferrequest_clean", + "label": ".clean()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": ".clean()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L393" + }, + { + "id": "backups_refactor_2026_10_09_models_storetransferrequest_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L390" + }, + { + "id": "backups_refactor_2026_10_09_services_approve_transfer_request", + "label": "approve_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "approve_transfer_request()", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L98" + }, + { + "id": "backups_refactor_2026_10_09_services_cancel_transfer_request", + "label": "cancel_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "cancel_transfer_request()", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L186" + }, + { + "id": "backups_refactor_2026_10_09_services_check_source_store_permission", + "label": "_check_source_store_permission()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "_check_source_store_permission()", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L29" + }, + { + "id": "backups_refactor_2026_10_09_services_check_target_store_permission", + "label": "_check_target_store_permission()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "_check_target_store_permission()", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L19" + }, + { + "id": "backups_refactor_2026_10_09_services_create_transfer_request", + "label": "create_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "create_transfer_request()", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L55" + }, + { + "id": "backups_refactor_2026_10_09_services_get_product_current_stock", + "label": "get_product_current_stock()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "get_product_current_stock()", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L39" + }, + { + "id": "backups_refactor_2026_10_09_services_reject_transfer_request", + "label": "reject_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "reject_transfer_request()", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L159" + }, + { + "id": "backups_refactor_2026_10_09_views_newstore", + "label": "newStore()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "newstore()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1366" + }, + { + "id": "backups_refactor_2026_10_09_views_process_transfer_action", + "label": "process_transfer_action()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "process_transfer_action()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1319" + }, + { + "id": "backups_refactor_2026_10_09_views_store", + "label": "store()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "store()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1149" + }, + { + "id": "backups_refactor_2026_10_09_views_stores", + "label": "stores()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "stores()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1133" + }, + { + "id": "admin_panel_models_factors_factor_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models/factors.py", + "source_location": "L45" + }, + { + "id": "admin_panel_models_store_storeroom_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/store.py", + "source_location": "L29" + }, + { + "id": "admin_panel_models_store_storetransferrequest_clean", + "label": ".clean()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".clean()", + "source_file": "admin_panel/models/store.py", + "source_location": "L143" + }, + { + "id": "admin_panel_models_store_storetransferrequest_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/store.py", + "source_location": "L140" + }, + { + "id": "admin_panel_models_users_userprofile_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/users.py", + "source_location": "L17" + }, + { + "id": "admin_panel_views_actions_actionlist", + "label": "ActionList()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlist()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L98" + }, + { + "id": "admin_panel_views_actions_actionlistall", + "label": "ActionListAll()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlistall()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L155" + }, + { + "id": "admin_panel_views_actions_actionlisttoday", + "label": "ActionListToday()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlisttoday()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L162" + }, + { + "id": "admin_panel_views_actions_actionlistuser", + "label": "ActionListUser()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlistuser()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L105" + }, + { + "id": "admin_panel_views_actions_actionlistusertoday", + "label": "ActionListUserToday()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlistusertoday()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L174" + }, + { + "id": "admin_panel_views_actions_customeraction", + "label": "customerAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "customeraction()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L13" + }, + { + "id": "admin_panel_views_actions_customereditaction", + "label": "customerEditAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "customereditaction()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L112" + }, + { + "id": "admin_panel_views_actions_customernazar", + "label": "customerNazar()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "customernazar()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L49" + }, + { + "id": "admin_panel_views_actions_customernewaction", + "label": "customerNewAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "customernewaction()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L57" + }, + { + "id": "admin_panel_views_actions_rezayat", + "label": "rezayat()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "rezayat()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L201" + }, + { + "id": "admin_panel_views_actions_rezayatedit", + "label": "rezayatEdit()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "rezayatedit()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L233" + }, + { + "id": "admin_panel_views_factors_newfactor", + "label": "newFactor()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "newfactor()", + "source_file": "admin_panel/views/factors.py", + "source_location": "L19" + }, + { + "id": "backups_refactor_2026_10_09_models_factor_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L175" + }, + { + "id": "backups_refactor_2026_10_09_models_userprofile_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L26" + }, + { + "id": "admin_panel_admin_storeroomadmin_get_owners_count", + "label": ".get_owners_count()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": ".get_owners_count()", + "source_file": "admin_panel/admin.py", + "source_location": "L74" + }, + { + "id": "backups_refactor_2026_10_09_admin_storeroomadmin_get_owners_count", + "label": ".get_owners_count()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": ".get_owners_count()", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L74" + }, + { + "id": "admin_panel_management_commands_send_daily_report_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L15" + }, + { + "id": "tests_factories_current_stock", + "label": "current_stock()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "current_stock()", + "source_file": "tests/factories.py", + "source_location": "L91" + }, + { + "id": "tests_factories_make_category", + "label": "make_category()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_category()", + "source_file": "tests/factories.py", + "source_location": "L65" + }, + { + "id": "tests_factories_make_customer", + "label": "make_customer()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_customer()", + "source_file": "tests/factories.py", + "source_location": "L99" + }, + { + "id": "tests_factories_make_product", + "label": "make_product()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_product()", + "source_file": "tests/factories.py", + "source_location": "L69" + }, + { + "id": "tests_factories_make_store", + "label": "make_store()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_store()", + "source_file": "tests/factories.py", + "source_location": "L46" + }, + { + "id": "tests_factories_make_user", + "label": "make_user()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_user()", + "source_file": "tests/factories.py", + "source_location": "L21" + }, + { + "id": "tests_factories_next", + "label": "_next()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "_next()", + "source_file": "tests/factories.py", + "source_location": "L17" + }, + { + "id": "tests_factories_stock_in", + "label": "stock_in()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "stock_in()", + "source_file": "tests/factories.py", + "source_location": "L78" + }, + { + "id": "tests_test_customers_customercrudtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_customers.py", + "source_location": "L14" + }, + { + "id": "tests_test_customers_customercrudtests_test_add_customer_creates_phones", + "label": ".test_add_customer_creates_phones()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_add_customer_creates_phones()", + "source_file": "tests/test_customers.py", + "source_location": "L18" + }, + { + "id": "tests_test_customers_customercrudtests_test_edit_customer_replaces_phones", + "label": ".test_edit_customer_replaces_phones()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_edit_customer_replaces_phones()", + "source_file": "tests/test_customers.py", + "source_location": "L36" + }, + { + "id": "tests_test_customers_customerdeleteguardtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_customers.py", + "source_location": "L61" + }, + { + "id": "tests_test_customers_customerdeleteguardtests_test_customer_with_financial_history_is_never_deleted", + "label": ".test_customer_with_financial_history_is_never_deleted()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_customer_with_financial_history_is_never_deleted()", + "source_file": "tests/test_customers.py", + "source_location": "L75" + }, + { + "id": "tests_test_customers_customerdeleteguardtests_test_customer_without_history_is_deactivated", + "label": ".test_customer_without_history_is_deactivated()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_customer_without_history_is_deactivated()", + "source_file": "tests/test_customers.py", + "source_location": "L65" + }, + { + "id": "tests_test_factors_factorsoftdeletetests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_factors.py", + "source_location": "L17" + }, + { + "id": "tests_test_factors_factorsoftdeletetests_test_delete_is_soft", + "label": ".test_delete_is_soft()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_delete_is_soft()", + "source_file": "tests/test_factors.py", + "source_location": "L24" + }, + { + "id": "tests_test_factors_factorsoftdeletetests_test_instore_transaction_protects_its_factor", + "label": ".test_instore_transaction_protects_its_factor()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_instore_transaction_protects_its_factor()", + "source_file": "tests/test_factors.py", + "source_location": "L33" + }, + { + "id": "tests_test_factors_newfactor2viewtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_factors.py", + "source_location": "L52" + }, + { + "id": "tests_test_factors_newfactor2viewtests_test_new_factor2_creates_factor_article_and_stock_out", + "label": ".test_new_factor2_creates_factor_article_and_stock_out()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_new_factor2_creates_factor_article_and_stock_out()", + "source_file": "tests/test_factors.py", + "source_location": "L59" + }, + { + "id": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_get", + "label": ".test_new_factor2_rejects_get()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_new_factor2_rejects_get()", + "source_file": "tests/test_factors.py", + "source_location": "L109" + }, + { + "id": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_oversell_without_creating_factor", + "label": ".test_new_factor2_rejects_oversell_without_creating_factor()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_new_factor2_rejects_oversell_without_creating_factor()", + "source_file": "tests/test_factors.py", + "source_location": "L88" + }, + { + "id": "tests_test_inventory_productinstoremathtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_inventory.py", + "source_location": "L21" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_deleting_a_row_creates_history_and_reduces_stock", + "label": ".test_deleting_a_row_creates_history_and_reduces_stock()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_deleting_a_row_creates_history_and_reduces_stock()", + "source_file": "tests/test_inventory.py", + "source_location": "L72" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_editing_a_row_updates_stock_and_history", + "label": ".test_editing_a_row_updates_stock_and_history()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_editing_a_row_updates_stock_and_history()", + "source_file": "tests/test_inventory.py", + "source_location": "L55" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_garbage_numeric_values_are_coerced_to_zero", + "label": ".test_garbage_numeric_values_are_coerced_to_zero()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_garbage_numeric_values_are_coerced_to_zero()", + "source_file": "tests/test_inventory.py", + "source_location": "L89" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_initial_in_records_history_and_stock", + "label": ".test_initial_in_records_history_and_stock()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_initial_in_records_history_and_stock()", + "source_file": "tests/test_inventory.py", + "source_location": "L25" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "label": ".test_multiple_movements_accumulate_correctly()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_multiple_movements_accumulate_correctly()", + "source_file": "tests/test_inventory.py", + "source_location": "L37" + }, + { + "id": "tests_test_inventory_transferworkflowtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_inventory.py", + "source_location": "L101" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_endpoints", + "label": "._endpoints()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "._endpoints()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L83" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_now_ms", + "label": "._now_ms()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "._now_ms()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L77" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L70" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "label": ".setUpTestData()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setuptestdata()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L33" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_test_every_endpoint_responds_without_server_error", + "label": ".test_every_endpoint_responds_without_server_error()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_every_endpoint_responds_without_server_error()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L207" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_url", + "label": "._url()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "._url()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L80" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_add_arguments", + "label": ".add_arguments()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": ".add_arguments()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L15" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "label": "._execute_by_immediate_chunks()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": "._execute_by_immediate_chunks()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L88" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "label": "._execute_hybrid_migration()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": "._execute_hybrid_migration()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L114" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L28" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "label": "._process_single_chunk()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": "._process_single_chunk()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L122" + }, + { + "id": "admin_panel_models_products_product_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/products.py", + "source_location": "L24" + }, + { + "id": "admin_panel_models_products_productcategory_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/products.py", + "source_location": "L8" + }, + { + "id": "admin_panel_models_products_productinstore_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models/products.py", + "source_location": "L120" + }, + { + "id": "admin_panel_models_products_productinstore_save", + "label": ".save()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".save()", + "source_file": "admin_panel/models/products.py", + "source_location": "L72" + }, + { + "id": "admin_panel_models_products_productinstore_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/products.py", + "source_location": "L68" + }, + { + "id": "admin_panel_models_store_productstockhistory_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/store.py", + "source_location": "L61" + }, + { + "id": "project_tree_is_excluded_file", + "label": "is_excluded_file()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "is_excluded_file()", + "source_file": "project_tree.py", + "source_location": "L102" + }, + { + "id": "project_tree_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "main()", + "source_file": "project_tree.py", + "source_location": "L241" + }, + { + "id": "project_tree_non_negative_integer", + "label": "non_negative_integer()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "non_negative_integer()", + "source_file": "project_tree.py", + "source_location": "L214" + }, + { + "id": "project_tree_parse_args", + "label": "parse_args()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "parse_args()", + "source_file": "project_tree.py", + "source_location": "L224" + }, + { + "id": "project_tree_sorted_entries", + "label": "sorted_entries()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "sorted_entries()", + "source_file": "project_tree.py", + "source_location": "L109" + }, + { + "id": "project_tree_warn", + "label": "warn()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "warn()", + "source_file": "project_tree.py", + "source_location": "L90" + }, + { + "id": "manage_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "manage.py", + "file_type": "code", + "norm_label": "main()", + "source_file": "manage.py", + "source_location": "L7" + }, + { + "id": "admin_views_index", + "label": "index()", + "_callable": true, + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "code", + "norm_label": "index()", + "source_file": "admin/views.py", + "source_location": "L7" + }, + { + "id": "admin_panel_views_finance_addsarresid", + "label": "addSarresid()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "addsarresid()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L772" + }, + { + "id": "admin_panel_views_finance_bedehi", + "label": "bedehi()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "bedehi()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L518" + }, + { + "id": "admin_panel_views_finance_bedehikhadamat", + "label": "bedehiKhadamat()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "bedehikhadamat()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L659" + }, + { + "id": "admin_panel_views_finance_bedehinasb", + "label": "bedehiNasb()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "bedehinasb()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L676" + }, + { + "id": "admin_panel_views_finance_financial_dashboard", + "label": "financial_dashboard()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "financial_dashboard()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L318" + }, + { + "id": "admin_panel_views_finance_hesabdari", + "label": "hesabdari()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "hesabdari()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L538" + }, + { + "id": "admin_panel_views_finance_hesabdari_checkpass", + "label": "hesabdari_checkPass()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "hesabdari_checkpass()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L594" + }, + { + "id": "admin_panel_views_finance_hesabdari_checkpassfail", + "label": "hesabdari_checkPassFail()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "hesabdari_checkpassfail()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L614" + }, + { + "id": "admin_panel_views_finance_hesabdari_residnashone", + "label": "hesabdari_residnashone()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "hesabdari_residnashone()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L638" + }, + { + "id": "admin_panel_views_finance_inventory_movements_report", + "label": "inventory_movements_report()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "inventory_movements_report()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L235" + }, + { + "id": "admin_panel_views_finance_pardakhtnesiye", + "label": "pardakhtNesiye()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "pardakhtnesiye()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L864" + }, + { + "id": "admin_panel_views_finance_passcheck", + "label": "passCheck()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "passcheck()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L692" + }, + { + "id": "admin_panel_views_finance_report", + "label": "report()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "report()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L24" + }, + { + "id": "admin_panel_views_finance_report_debtors_no_vosol", + "label": "report_debtors_no_vosol()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "report_debtors_no_vosol()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L124" + }, + { + "id": "admin_panel_views_finance_rezayat_dashboard", + "label": "rezayat_dashboard()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "rezayat_dashboard()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L927" + }, + { + "id": "admin_panel_views_finance_update_check_info", + "label": "update_check_info()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "update_check_info()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L723" + }, + { + "id": "project_tree_counts_add_file", + "label": ".add_file()", + "_callable": true, + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": ".add_file()", + "source_file": "project_tree.py", + "source_location": "L76" + }, + { + "id": "project_tree_format_header", + "label": "format_header()", + "_callable": true, + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": "format_header()", + "source_file": "project_tree.py", + "source_location": "L175" + }, + { + "id": "project_tree_generate_snapshot", + "label": "generate_snapshot()", + "_callable": true, + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": "generate_snapshot()", + "source_file": "project_tree.py", + "source_location": "L191" + }, + { + "id": "project_tree_normalized_path", + "label": "normalized_path()", + "_callable": true, + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": "normalized_path()", + "source_file": "project_tree.py", + "source_location": "L96" + }, + { + "id": "project_tree_write_tree", + "label": "write_tree()", + "_callable": true, + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": "write_tree()", + "source_file": "project_tree.py", + "source_location": "L138" + }, + { + "id": "project_tree_write_tree_visit", + "label": "visit()", + "_callable": true, + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": "visit()", + "source_file": "project_tree.py", + "source_location": "L150" + }, + { + "id": "backups_refactor_2026_10_09_models_product_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L131" + }, + { + "id": "backups_refactor_2026_10_09_models_productcategory_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L115" + }, + { + "id": "backups_refactor_2026_10_09_views_customerfactor", + "label": "customerFactor()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "customerfactor()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L927" + }, + { + "id": "backups_refactor_2026_10_09_views_customernew", + "label": "customerNew()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "customernew()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L827" + }, + { + "id": "backups_refactor_2026_10_09_views_customernew2", + "label": "customerNew2()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "customernew2()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L839" + }, + { + "id": "backups_refactor_2026_10_09_views_newoperation", + "label": "newOperation()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "newoperation()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1270" + }, + { + "id": "backups_refactor_2026_10_09_views_operationproduct", + "label": "operationProduct()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "operationproduct()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1251" + }, + { + "id": "backups_refactor_2026_10_09_views_productadd", + "label": "productAdd()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "productadd()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1376" + }, + { + "id": "backups_refactor_2026_10_09_views_productdel", + "label": "productDel()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "productdel()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1420" + }, + { + "id": "backups_refactor_2026_10_09_views_productedit", + "label": "productEdit()", + "_callable": true, + "_origin": "ast", + "community": 46, + "community_name": "Product", + "file_type": "code", + "norm_label": "productedit()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1402" + }, + { + "id": "admin_panel_views_auth_p_login", + "label": "p_login()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "p_login()", + "source_file": "admin_panel/views/auth.py", + "source_location": "L5" + }, + { + "id": "admin_panel_views_auth_p_logout", + "label": "p_logout()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "p_logout()", + "source_file": "admin_panel/views/auth.py", + "source_location": "L27" + }, + { + "id": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "label": "api_check_sabt_inquiry()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "api_check_sabt_inquiry()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L251" + }, + { + "id": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "label": "api_check_status_inquiry()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "api_check_status_inquiry()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L228" + }, + { + "id": "admin_panel_views_cheque_inquiry_parse_cheque_result_html", + "label": "parse_cheque_result_html()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "parse_cheque_result_html()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L67" + }, + { + "id": "admin_panel_views_cheque_inquiry_run_bpi_cheque_inquiry_logic", + "label": "run_bpi_cheque_inquiry_logic()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "run_bpi_cheque_inquiry_logic()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L185" + }, + { + "id": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "label": "run_cbi_sayad_inquiry_logic()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "run_cbi_sayad_inquiry_logic()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L87" + }, + { + "id": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "label": "solve_base64_captcha()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "solve_base64_captcha()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L22" + }, + { + "id": "admin_panel_views_customers_actionjson", + "label": "ActionJson()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "actionjson()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L204" + }, + { + "id": "admin_panel_views_customers_customer", + "label": "customer()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customer()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L74" + }, + { + "id": "admin_panel_views_customers_customerdel", + "label": "customerDel()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerdel()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L367" + }, + { + "id": "admin_panel_views_customers_customeredit", + "label": "customerEdit()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customeredit()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L262" + }, + { + "id": "admin_panel_views_customers_customerfactor", + "label": "customerFactor()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerfactor()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L185" + }, + { + "id": "admin_panel_views_customers_customerfactors", + "label": "customerFactors()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerfactors()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L120" + }, + { + "id": "admin_panel_views_customers_customerhesabdari", + "label": "customerHesabdari()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerhesabdari()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L415" + }, + { + "id": "admin_panel_views_customers_customerhesabdariadd", + "label": "customerHesabdariAdd()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerhesabdariadd()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L442" + }, + { + "id": "admin_panel_views_customers_customerjson", + "label": "CustomerJson()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerjson()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L211" + }, + { + "id": "admin_panel_views_customers_customernew", + "label": "customerNew()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customernew()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L85" + }, + { + "id": "admin_panel_views_customers_customernew2", + "label": "customerNew2()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customernew2()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L97" + }, + { + "id": "admin_panel_views_customers_customers", + "label": "customers()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customers()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L20" + }, + { + "id": "admin_panel_views_customers_customersadd", + "label": "customersAdd()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customersadd()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L220" + }, + { + "id": "admin_panel_views_customers_customerssearch", + "label": "customersSearch()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerssearch()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L50" + }, + { + "id": "admin_panel_views_customers_entezar", + "label": "entezar()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "entezar()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L305" + }, + { + "id": "admin_panel_views_customers_productsjson", + "label": "productsJson()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "productsjson()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L197" + }, + { + "id": "admin_panel_views_customers_sarresidh", + "label": "sarresidh()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "sarresidh()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L431" + }, + { + "id": "admin_panel_views_factors_factordel", + "label": "FactorDel()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "factordel()", + "source_file": "admin_panel/views/factors.py", + "source_location": "L368" + }, + { + "id": "admin_panel_views_factors_newfactor2", + "label": "newFactor2()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "newfactor2()", + "source_file": "admin_panel/views/factors.py", + "source_location": "L165" + }, + { + "id": "admin_panel_views_helpers_parse_jalali_date", + "label": "_parse_jalali_date()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "_parse_jalali_date()", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L28" + }, + { + "id": "admin_panel_views_helpers_parse_timestamp", + "label": "_parse_timestamp()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "_parse_timestamp()", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L41" + }, + { + "id": "admin_panel_views_helpers_safe_int", + "label": "_safe_int()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "_safe_int()", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L17" + }, + { + "id": "backups_refactor_2026_10_09_views_actionjson", + "label": "ActionJson()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "actionjson()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L946" + }, + { + "id": "backups_refactor_2026_10_09_views_actionlist", + "label": "ActionList()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "actionlist()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2184" + }, + { + "id": "backups_refactor_2026_10_09_views_actionlistall", + "label": "ActionListAll()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "actionlistall()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2241" + }, + { + "id": "backups_refactor_2026_10_09_views_actionlisttoday", + "label": "ActionListToday()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "actionlisttoday()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2248" + }, + { + "id": "backups_refactor_2026_10_09_views_actionlistuser", + "label": "ActionListUser()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "actionlistuser()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2191" + }, + { + "id": "backups_refactor_2026_10_09_views_actionlistusertoday", + "label": "ActionListUserToday()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "actionlistusertoday()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2260" + }, + { + "id": "backups_refactor_2026_10_09_views_api_check_status_inquiry", + "label": "api_check_status_inquiry()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "api_check_status_inquiry()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2851" + }, + { + "id": "backups_refactor_2026_10_09_views_bedehi", + "label": "bedehi()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "bedehi()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L593" + }, + { + "id": "backups_refactor_2026_10_09_views_bedehikhadamat", + "label": "bedehiKhadamat()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "bedehikhadamat()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L731" + }, + { + "id": "backups_refactor_2026_10_09_views_bedehinasb", + "label": "bedehiNasb()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "bedehinasb()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L747" + }, + { + "id": "backups_refactor_2026_10_09_views_customer", + "label": "customer()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customer()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L816" + }, + { + "id": "backups_refactor_2026_10_09_views_customeraction", + "label": "customerAction()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customeraction()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2099" + }, + { + "id": "backups_refactor_2026_10_09_views_customerdel", + "label": "customerDel()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customerdel()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1999" + }, + { + "id": "backups_refactor_2026_10_09_views_customeredit", + "label": "customerEdit()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customeredit()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1029" + }, + { + "id": "backups_refactor_2026_10_09_views_customereditaction", + "label": "customerEditAction()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customereditaction()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2198" + }, + { + "id": "backups_refactor_2026_10_09_views_customerhesabdari", + "label": "customerHesabdari()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customerhesabdari()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2047" + }, + { + "id": "backups_refactor_2026_10_09_views_customerjson", + "label": "CustomerJson()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customerjson()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L953" + }, + { + "id": "backups_refactor_2026_10_09_views_customernazar", + "label": "customerNazar()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customernazar()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2135" + }, + { + "id": "backups_refactor_2026_10_09_views_customernewaction", + "label": "customerNewAction()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customernewaction()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2143" + }, + { + "id": "backups_refactor_2026_10_09_views_customers", + "label": "customers()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customers()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L762" + }, + { + "id": "backups_refactor_2026_10_09_views_customerssearch", + "label": "customersSearch()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "customerssearch()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L792" + }, + { + "id": "backups_refactor_2026_10_09_views_entezar", + "label": "entezar()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "entezar()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1072" + }, + { + "id": "backups_refactor_2026_10_09_views_financial_dashboard", + "label": "financial_dashboard()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "financial_dashboard()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L394" + }, + { + "id": "backups_refactor_2026_10_09_views_hesabdari", + "label": "hesabdari()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "hesabdari()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L612" + }, + { + "id": "backups_refactor_2026_10_09_views_hesabdari_checkpass", + "label": "hesabdari_checkPass()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "hesabdari_checkpass()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L667" + }, + { + "id": "backups_refactor_2026_10_09_views_hesabdari_checkpassfail", + "label": "hesabdari_checkPassFail()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "hesabdari_checkpassfail()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L687" + }, + { + "id": "backups_refactor_2026_10_09_views_hesabdari_residnashone", + "label": "hesabdari_residnashone()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "hesabdari_residnashone()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L710" + }, + { + "id": "backups_refactor_2026_10_09_views_p_login", + "label": "p_login()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "p_login()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L74" + }, + { + "id": "backups_refactor_2026_10_09_views_p_logout", + "label": "p_logout()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "p_logout()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L95" + }, + { + "id": "backups_refactor_2026_10_09_views_parse_cheque_result_html", + "label": "parse_cheque_result_html()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "parse_cheque_result_html()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2690" + }, + { + "id": "backups_refactor_2026_10_09_views_productsjson", + "label": "productsJson()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "productsjson()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L939" + }, + { + "id": "backups_refactor_2026_10_09_views_report", + "label": "report()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "report()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L102" + }, + { + "id": "backups_refactor_2026_10_09_views_report_debtors_no_vosol", + "label": "report_debtors_no_vosol()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "report_debtors_no_vosol()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L202" + }, + { + "id": "backups_refactor_2026_10_09_views_rezayat", + "label": "rezayat()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "rezayat()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2293" + }, + { + "id": "backups_refactor_2026_10_09_views_rezayat_dashboard", + "label": "rezayat_dashboard()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "rezayat_dashboard()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2360" + }, + { + "id": "backups_refactor_2026_10_09_views_rezayatedit", + "label": "rezayatEdit()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "rezayatedit()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2325" + }, + { + "id": "backups_refactor_2026_10_09_views_run_cbi_sayad_inquiry_logic", + "label": "run_cbi_sayad_inquiry_logic()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "run_cbi_sayad_inquiry_logic()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2710" + }, + { + "id": "backups_refactor_2026_10_09_views_sarresidh", + "label": "sarresidh()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "sarresidh()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2063" + }, + { + "id": "backups_refactor_2026_10_09_views_solve_base64_captcha", + "label": "solve_base64_captcha()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "solve_base64_captcha()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2645" + }, + { + "id": "backups_refactor_2026_10_09_views_store_transfers", + "label": "store_transfers()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "store_transfers()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1280" + }, + { + "id": "backups_refactor_2026_10_09_models_productinstore_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L271" + }, + { + "id": "backups_refactor_2026_10_09_models_productinstore_save", + "label": ".save()", + "_callable": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".save()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L225" + }, + { + "id": "backups_refactor_2026_10_09_models_productinstore_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L221" + }, + { + "id": "backups_refactor_2026_10_09_views_factordel", + "label": "FactorDel()", + "_callable": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "factordel()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1892" + }, + { + "id": "backups_refactor_2026_10_09_views_operations", + "label": "operations()", + "_callable": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "operations()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1222" + }, + { + "id": "backups_refactor_2026_10_09_views_productmojodi", + "label": "productMojodi()", + "_callable": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "productmojodi()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L961" + }, + { + "id": "backups_refactor_2026_10_09_views_update_check_info", + "label": "update_check_info()", + "_callable": true, + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "update_check_info()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2442" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "label": ".cleanup_resources()", + "_callable": true, + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "code", + "norm_label": ".cleanup_resources()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L157" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L37" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "label": ".handle_critical_failure()", + "_callable": true, + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "code", + "norm_label": ".handle_critical_failure()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L173" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle_progress_callback", + "label": "progress_callback()", + "_callable": true, + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "code", + "norm_label": "progress_callback()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L82" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L20" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "label": "._signal_handler()", + "_callable": true, + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "code", + "norm_label": "._signal_handler()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L29" + }, + { + "id": "backups_refactor_2026_10_09_views_addsarresid", + "label": "addSarresid()", + "_callable": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "norm_label": "addsarresid()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2490" + }, + { + "id": "backups_refactor_2026_10_09_views_customerhesabdariadd", + "label": "customerHesabdariAdd()", + "_callable": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "norm_label": "customerhesabdariadd()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2074" + }, + { + "id": "backups_refactor_2026_10_09_views_newfactor", + "label": "newFactor()", + "_callable": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "norm_label": "newfactor()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1545" + }, + { + "id": "backups_refactor_2026_10_09_views_pardakhtnesiye", + "label": "pardakhtNesiye()", + "_callable": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "norm_label": "pardakhtnesiye()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2581" + }, + { + "id": "backups_refactor_2026_10_09_views_passcheck", + "label": "passCheck()", + "_callable": true, + "_origin": "ast", + "community": 96, + "community_name": "newFactor", + "file_type": "code", + "norm_label": "passcheck()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2411" + }, + { + "id": "backups_refactor_2026_10_09_views_customerfactors", + "label": "customerFactors()", + "_callable": true, + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "code", + "norm_label": "customerfactors()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L862" + }, + { + "id": "backups_refactor_2026_10_09_views_newfactor2", + "label": "newFactor2()", + "_callable": true, + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "code", + "norm_label": "newfactor2()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1690" + }, + { + "id": "backups_refactor_2026_10_09_views_parse_jalali_date", + "label": "_parse_jalali_date()", + "_callable": true, + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "code", + "norm_label": "_parse_jalali_date()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L52" + }, + { + "id": "backups_refactor_2026_10_09_views_parse_timestamp", + "label": "_parse_timestamp()", + "_callable": true, + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "code", + "norm_label": "_parse_timestamp()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L64" + }, + { + "id": "backups_refactor_2026_10_09_views_api_check_sabt_inquiry", + "label": "api_check_sabt_inquiry()", + "_callable": true, + "_origin": "ast", + "community": 98, + "community_name": "inventory_movements_report", + "file_type": "code", + "norm_label": "api_check_sabt_inquiry()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2874" + }, + { + "id": "backups_refactor_2026_10_09_views_inventory_movements_report", + "label": "inventory_movements_report()", + "_callable": true, + "_origin": "ast", + "community": 98, + "community_name": "inventory_movements_report", + "file_type": "code", + "norm_label": "inventory_movements_report()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L312" + }, + { + "id": "backups_refactor_2026_10_09_views_operation", + "label": "operation()", + "_callable": true, + "_origin": "ast", + "community": 98, + "community_name": "inventory_movements_report", + "file_type": "code", + "norm_label": "operation()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1426" + }, + { + "id": "backups_refactor_2026_10_09_views_run_bpi_cheque_inquiry_logic", + "label": "run_bpi_cheque_inquiry_logic()", + "_callable": true, + "_origin": "ast", + "community": 98, + "community_name": "inventory_movements_report", + "file_type": "code", + "norm_label": "run_bpi_cheque_inquiry_logic()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2808" + }, + { + "id": "backups_refactor_2026_10_09_views_safe_int", + "label": "_safe_int()", + "_callable": true, + "_origin": "ast", + "community": 98, + "community_name": "inventory_movements_report", + "file_type": "code", + "norm_label": "_safe_int()", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L42" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_all_models_importable_from_package", + "label": ".test_all_models_importable_from_package()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_all_models_importable_from_package()", + "source_file": "tests/test_models_contract.py", + "source_location": "L42" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_db_table_names_are_unchanged_defaults", + "label": ".test_db_table_names_are_unchanged_defaults()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_db_table_names_are_unchanged_defaults()", + "source_file": "tests/test_models_contract.py", + "source_location": "L57" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_models_are_registered_under_admin_panel_app", + "label": ".test_models_are_registered_under_admin_panel_app()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_models_are_registered_under_admin_panel_app()", + "source_file": "tests/test_models_contract.py", + "source_location": "L49" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_models_package_has_no_duplicate_registration", + "label": ".test_models_package_has_no_duplicate_registration()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_models_package_has_no_duplicate_registration()", + "source_file": "tests/test_models_contract.py", + "source_location": "L78" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_star_import_leak_names_still_present", + "label": ".test_star_import_leak_names_still_present()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_star_import_leak_names_still_present()", + "source_file": "tests/test_models_contract.py", + "source_location": "L66" + }, + { + "id": "admin_panel_services", + "label": "admin_panel/services.py", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "admin_panel/services.py", + "source_file": "admin_panel/services.py", + "source_location": "L1" + }, + { + "id": "admin_panel_services_py_abstractbaseuser", + "label": "AbstractBaseUser", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "abstractbaseuser", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_services_py_atomic", + "label": "atomic", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "atomic", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_services_py_product", + "label": "Product", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "product", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_services_py_storeroom", + "label": "StoreRoom", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "storeroom", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_services_py_storetransferrequest", + "label": "StoreTransferRequest", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "storetransferrequest", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_store", + "label": "views/store.py", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "views/store.py", + "source_file": "admin_panel/views/store.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_store_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_store_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_store_py_require_post", + "label": "require_POST", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "require_post", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_inventory", + "label": "test_inventory.py", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "test_inventory.py", + "source_file": "tests/test_inventory.py", + "source_location": "L1" + }, + { + "id": "admin_panel_services_rationale_160", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L160" + }, + { + "id": "admin_panel_services_rationale_187", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u0627\u0646\u0635\u0631\u0627\u0641 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0648\u0633\u0637 \u0627\u06cc\u062c\u0627\u062f\u06a9\u0646\u0646\u062f\u0647 \u06cc\u0627 \u0645\u0633\u0626\u0648\u0644 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u0627\u0646\u0635\u0631\u0627\u0641 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0648\u0633\u0637 \u0627\u06cc\u062c\u0627\u062f\u06a9\u0646\u0646\u062f\u0647 \u06cc\u0627 \u0645\u0633\u064a\u0648\u0644 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "source_file": "admin_panel/services.py", + "source_location": "L187" + }, + { + "id": "admin_panel_services_rationale_20", + "label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L20" + }, + { + "id": "admin_panel_services_rationale_30", + "label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "source_file": "admin_panel/services.py", + "source_location": "L30" + }, + { + "id": "admin_panel_services_rationale_40", + "label": "\u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 \u0645\u0634\u062e\u0635. \u067e\u0627\u0631\u0627\u0645\u062a\u0631 lock_for_update \u062f\u0631 \u0632\u0645\u0627\u0646\u2026", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 \u0645\u0634\u062e\u0635. \u067e\u0627\u0631\u0627\u0645\u062a\u0631 lock_for_update \u062f\u0631 \u0632\u0645\u0627\u0646...", + "source_file": "admin_panel/services.py", + "source_location": "L40" + }, + { + "id": "admin_panel_services_rationale_64", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u062b\u0628\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u062a\u0642\u0627\u0644 \u062c\u062f\u06cc\u062f", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u062b\u0628\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u062a\u0642\u0627\u0644 \u062c\u062f\u06cc\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L64" + }, + { + "id": "admin_panel_services_rationale_99", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u062a\u0627\u06cc\u06cc\u062f \u0627\u0646\u062a\u0642\u0627\u0644: \u0642\u0641\u0644 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631\u060c \u06a9\u0633\u0631 \u0627\u0632 \u0645\u0628\u062f\u0627\u060c \u0648\u0631\u0648\u062f \u0628\u0647\u2026", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u062a\u0627\u06cc\u06cc\u062f \u0627\u0646\u062a\u0642\u0627\u0644: \u0642\u0641\u0644 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631\u060c \u06a9\u0633\u0631 \u0627\u0632 \u0645\u0628\u062f\u0627\u060c \u0648\u0631\u0648\u062f \u0628\u0647...", + "source_file": "admin_panel/services.py", + "source_location": "L99" + }, + { + "id": "admin_panel_views_store_rationale_165", + "label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0648 \u06a9\u0627\u0631\u062a\u0627\u0628\u0644 \u062c\u0627\u0645\u0639 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0648 \u06a9\u0627\u0631\u062a\u0627\u0628\u0644 \u062c\u0627\u0645\u0639 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631", + "source_file": "admin_panel/views/store.py", + "source_location": "L165" + }, + { + "id": "admin_panel_views_store_rationale_204", + "label": "\u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0645\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u0628\u0627\u0631\u062f\u0627\u0631 (\u062a\u0627\u06cc\u06cc\u062f\u060c \u0631\u062f\u060c \u0627\u0646\u0635\u0631\u0627\u0641) \u0628\u0627 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0627\u062a\u0645\u06cc\u06a9", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0645\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u0628\u0627\u0631\u062f\u0627\u0631 (\u062a\u0627\u06cc\u06cc\u062f\u060c \u0631\u062f\u060c \u0627\u0646\u0635\u0631\u0627\u0641) \u0628\u0627 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0627\u062a\u0645\u06cc\u06a9", + "source_file": "admin_panel/views/store.py", + "source_location": "L204" + }, + { + "id": "tests_test_inventory_rationale_1", + "label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0646\u0628\u0627\u0631: \u0631\u06cc\u0627\u0636\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u060c \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0644\u0627 \u0648 \u0686\u0631\u062e\u0647\u0654 \u06a9\u0627\u0645\u0644 \u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u06cc\u0646\u2026", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0646\u0628\u0627\u0631: \u0631\u06cc\u0627\u0636\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u060c \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0644\u0627 \u0648 \u0686\u0631\u062e\u0647 \u06a9\u0627\u0645\u0644 \u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u06cc\u0646...", + "source_file": "tests/test_inventory.py", + "source_location": "L1" + }, + { + "id": "admin_panel_context_processor", + "label": "admin_panel/context_processor.py", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "admin_panel/context_processor.py", + "source_file": "admin_panel/context_processor.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_custom_tags", + "label": "custom_tags.py", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "custom_tags.py", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_remove_q_p", + "label": "remove_q_p.py", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "remove_q_p.py", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L1" + }, + { + "id": "backups_refactor_2026_10_09_context_processor", + "label": "refactor-2026-10-09/context_processor.py", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "refactor-2026-10-09/context_processor.py", + "source_file": "backups/refactor-2026-10-09/context_processor.py", + "source_location": "L1" + }, + { + "id": "check_finance", + "label": "check_finance.py", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "check_finance.py", + "source_file": "check_finance.py", + "source_location": "L1" + }, + { + "id": "datetime", + "label": "datetime", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "datetime", + "source_file": "", + "source_location": "" + }, + { + "id": "filter", + "label": "filter", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "filter", + "source_file": "", + "source_location": "" + }, + { + "id": "ghost_hunter", + "label": "ghost_hunter.py", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "ghost_hunter.py", + "source_file": "ghost_hunter.py", + "source_location": "L1" + }, + { + "id": "reconciliation_tool", + "label": "reconciliation_tool.py", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "code", + "norm_label": "reconciliation_tool.py", + "source_file": "reconciliation_tool.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_remove_q_p_rationale_7", + "label": "Remove a specific query parameter from a URL.", + "_origin": "ast", + "community": 1, + "community_name": "django_db_models", + "file_type": "rationale", + "norm_label": "remove a specific query parameter from a url.", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L7" + }, + { + "id": "admin_panel_models_customers", + "label": "models/customers.py", + "_origin": "ast", + "community": 100, + "community_name": "Customer", + "file_type": "code", + "norm_label": "models/customers.py", + "source_file": "admin_panel/models/customers.py", + "source_location": "L1" + }, + { + "id": "khatibi_asgi", + "label": "asgi.py", + "_origin": "ast", + "community": 101, + "community_name": "os", + "file_type": "code", + "norm_label": "asgi.py", + "source_file": "khatibi/asgi.py", + "source_location": "L1" + }, + { + "id": "khatibi_wsgi", + "label": "wsgi.py", + "_origin": "ast", + "community": 101, + "community_name": "os", + "file_type": "code", + "norm_label": "wsgi.py", + "source_file": "khatibi/wsgi.py", + "source_location": "L1" + }, + { + "id": "khatibi_asgi_rationale_1", + "label": "ASGI config for khatibi project. It exposes the ASGI callable as a module-level\u2026", + "_origin": "ast", + "community": 101, + "community_name": "os", + "file_type": "rationale", + "norm_label": "asgi config for khatibi project. it exposes the asgi callable as a module-level...", + "source_file": "khatibi/asgi.py", + "source_location": "L1" + }, + { + "id": "khatibi_wsgi_rationale_1", + "label": "WSGI config for khatibi project. It exposes the WSGI callable as a module-level\u2026", + "_origin": "ast", + "community": 101, + "community_name": "os", + "file_type": "rationale", + "norm_label": "wsgi config for khatibi project. it exposes the wsgi callable as a module-level...", + "source_file": "khatibi/wsgi.py", + "source_location": "L1" + }, + { + "id": "tests_test_urls_contract_py_simpletestcase", + "label": "SimpleTestCase", + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": "simpletestcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_urls_contract_rationale_146", + "label": "\u0647\u0631 `views.X` \u062f\u0631 urls.py \u0628\u0627\u06cc\u062f \u062f\u0631 \u067e\u06a9\u06cc\u062c views \u0645\u0648\u062c\u0648\u062f \u0648 \u0642\u0627\u0628\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0627\u0634\u062f.", + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "rationale", + "norm_label": "\u0647\u0631 `views.x` \u062f\u0631 urls.py \u0628\u0627\u06cc\u062f \u062f\u0631 \u067e\u06a9\u06cc\u062c views \u0645\u0648\u062c\u0648\u062f \u0648 \u0642\u0627\u0628\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0627\u0634\u062f.", + "source_file": "tests/test_urls_contract.py", + "source_location": "L146" + }, + { + "id": "admin_panel_models_system", + "label": "system.py", + "_origin": "ast", + "community": 104, + "community_name": "system.py", + "file_type": "code", + "norm_label": "system.py", + "source_file": "admin_panel/models/system.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "label": "0047_alter_productinstore_movement_type.py", + "_origin": "ast", + "community": 106, + "community_name": "0047_alter_productinstore_movement_type.py", + "file_type": "code", + "norm_label": "0047_alter_productinstore_movement_type.py", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L1" + }, + { + "id": "tests_init", + "label": "tests/__init__.py", + "_origin": "ast", + "community": 107, + "community_name": "tests/__init__.py", + "file_type": "code", + "norm_label": "tests/__init__.py", + "source_file": "tests/__init__.py", + "source_location": null + }, + { + "id": "backups_refactor_2026_10_09_models", + "label": "refactor-2026-10-09/models.py", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "refactor-2026-10-09/models.py", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L1" + }, + { + "id": "backups_refactor_2026_10_09_services", + "label": "refactor-2026-10-09/services.py", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "refactor-2026-10-09/services.py", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L1" + }, + { + "id": "backups_refactor_2026_10_09_services_py_abstractbaseuser", + "label": "AbstractBaseUser", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "abstractbaseuser", + "source_file": "", + "source_location": "" + }, + { + "id": "backups_refactor_2026_10_09_services_py_atomic", + "label": "atomic", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "code", + "norm_label": "atomic", + "source_file": "", + "source_location": "" + }, + { + "id": "backups_refactor_2026_10_09_services_rationale_160", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L160" + }, + { + "id": "backups_refactor_2026_10_09_services_rationale_187", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u0627\u0646\u0635\u0631\u0627\u0641 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0648\u0633\u0637 \u0627\u06cc\u062c\u0627\u062f\u06a9\u0646\u0646\u062f\u0647 \u06cc\u0627 \u0645\u0633\u0626\u0648\u0644 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u0627\u0646\u0635\u0631\u0627\u0641 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0648\u0633\u0637 \u0627\u06cc\u062c\u0627\u062f\u06a9\u0646\u0646\u062f\u0647 \u06cc\u0627 \u0645\u0633\u064a\u0648\u0644 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L187" + }, + { + "id": "backups_refactor_2026_10_09_services_rationale_20", + "label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "rationale", + "norm_label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L20" + }, + { + "id": "backups_refactor_2026_10_09_services_rationale_30", + "label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "rationale", + "norm_label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L30" + }, + { + "id": "backups_refactor_2026_10_09_services_rationale_40", + "label": "\u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 \u0645\u0634\u062e\u0635. \u067e\u0627\u0631\u0627\u0645\u062a\u0631 lock_for_update \u062f\u0631 \u0632\u0645\u0627\u0646\u2026", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "rationale", + "norm_label": "\u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 \u0645\u0634\u062e\u0635. \u067e\u0627\u0631\u0627\u0645\u062a\u0631 lock_for_update \u062f\u0631 \u0632\u0645\u0627\u0646...", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L40" + }, + { + "id": "backups_refactor_2026_10_09_services_rationale_64", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u062b\u0628\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u062a\u0642\u0627\u0644 \u062c\u062f\u06cc\u062f", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u062b\u0628\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u062a\u0642\u0627\u0644 \u062c\u062f\u06cc\u062f", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L64" + }, + { + "id": "backups_refactor_2026_10_09_services_rationale_99", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u062a\u0627\u06cc\u06cc\u062f \u0627\u0646\u062a\u0642\u0627\u0644: \u0642\u0641\u0644 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631\u060c \u06a9\u0633\u0631 \u0627\u0632 \u0645\u0628\u062f\u0627\u060c \u0648\u0631\u0648\u062f \u0628\u0647\u2026", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u062a\u0627\u06cc\u06cc\u062f \u0627\u0646\u062a\u0642\u0627\u0644: \u0642\u0641\u0644 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631\u060c \u06a9\u0633\u0631 \u0627\u0632 \u0645\u0628\u062f\u0627\u060c \u0648\u0631\u0648\u062f \u0628\u0647...", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L99" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_1320", + "label": "\u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0645\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u0628\u0627\u0631\u062f\u0627\u0631 (\u062a\u0627\u06cc\u06cc\u062f\u060c \u0631\u062f\u060c \u0627\u0646\u0635\u0631\u0627\u0641) \u0628\u0627 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0627\u062a\u0645\u06cc\u06a9", + "_origin": "ast", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "file_type": "rationale", + "norm_label": "\u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0645\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u0628\u0627\u0631\u062f\u0627\u0631 (\u062a\u0627\u06cc\u06cc\u062f\u060c \u0631\u062f\u060c \u0627\u0646\u0635\u0631\u0627\u0641) \u0628\u0627 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0627\u062a\u0645\u06cc\u06a9", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1320" + }, + { + "id": "admin_panel_models_actions", + "label": "models/actions.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "models/actions.py", + "source_file": "admin_panel/models/actions.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_factors", + "label": "models/factors.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "models/factors.py", + "source_file": "admin_panel/models/factors.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_store", + "label": "models/store.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "models/store.py", + "source_file": "admin_panel/models/store.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_users", + "label": "users.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "users.py", + "source_file": "admin_panel/models/users.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_actions", + "label": "views/actions.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "views/actions.py", + "source_file": "admin_panel/views/actions.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_actions_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_models_store_rationale_34", + "label": "\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0648\u0627\u0633\u0637\u060c \u067e\u0634\u062a \u0635\u062d\u0646\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0641\u0642\u0637 \u0642\u0627\u0646\u0648\u0646 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f. \u06a9\u062f\u0647\u0627\u06cc\u2026", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "rationale", + "norm_label": "\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0648\u0627\u0633\u0637\u060c \u067e\u0634\u062a \u0635\u062d\u0646\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0641\u0642\u0637 \u0642\u0627\u0646\u0648\u0646 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f. \u06a9\u062f\u0647\u0627\u06cc...", + "source_file": "admin_panel/models/store.py", + "source_location": "L34" + }, + { + "id": "backups_refactor_2026_10_09_models_rationale_97", + "label": "\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0648\u0627\u0633\u0637\u060c \u067e\u0634\u062a \u0635\u062d\u0646\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0641\u0642\u0637 \u0642\u0627\u0646\u0648\u0646 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f. \u06a9\u062f\u0647\u0627\u06cc\u2026", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "rationale", + "norm_label": "\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0648\u0627\u0633\u0637\u060c \u067e\u0634\u062a \u0635\u062d\u0646\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0641\u0642\u0637 \u0642\u0627\u0646\u0648\u0646 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f. \u06a9\u062f\u0647\u0627\u06cc...", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L97" + }, + { + "id": "admin_admin", + "label": "admin/admin.py", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": "admin/admin.py", + "source_file": "admin/admin.py", + "source_location": "L1" + }, + { + "id": "admin_panel_admin", + "label": "admin_panel/admin.py", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": "admin_panel/admin.py", + "source_file": "admin_panel/admin.py", + "source_location": "L1" + }, + { + "id": "admin_panel_admin_py_register", + "label": "register", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": "register", + "source_file": "", + "source_location": "" + }, + { + "id": "backups_refactor_2026_10_09_admin", + "label": "refactor-2026-10-09/admin.py", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": "refactor-2026-10-09/admin.py", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L1" + }, + { + "id": "backups_refactor_2026_10_09_admin_py_register", + "label": "register", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": "register", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_admin_rationale_54", + "label": "\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a\u2026", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "rationale", + "norm_label": "\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a...", + "source_file": "admin_panel/admin.py", + "source_location": "L54" + }, + { + "id": "admin_panel_admin_rationale_75", + "label": "\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u0646\u0628\u0627\u0631\u0647\u0627", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "rationale", + "norm_label": "\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u0646\u0628\u0627\u0631\u0647\u0627", + "source_file": "admin_panel/admin.py", + "source_location": "L75" + }, + { + "id": "backups_refactor_2026_10_09_admin_rationale_54", + "label": "\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a\u2026", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "rationale", + "norm_label": "\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a...", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L54" + }, + { + "id": "backups_refactor_2026_10_09_admin_rationale_75", + "label": "\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u0646\u0628\u0627\u0631\u0647\u0627", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "rationale", + "norm_label": "\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u0646\u0628\u0627\u0631\u0647\u0627", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L75" + }, + { + "id": "admin_models", + "label": "admin/models.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "admin/models.py", + "source_file": "admin/models.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_send_daily_report_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_models_init", + "label": "models/__init__.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "models/__init__.py", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L1" + }, + { + "id": "admin_panel_tests", + "label": "admin_panel/tests.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "admin_panel/tests.py", + "source_file": "admin_panel/tests.py", + "source_location": "L1" + }, + { + "id": "admin_tests", + "label": "admin/tests.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "admin/tests.py", + "source_file": "admin/tests.py", + "source_location": "L1" + }, + { + "id": "tests_factories", + "label": "factories.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "factories.py", + "source_file": "tests/factories.py", + "source_location": "L1" + }, + { + "id": "tests_test_customers", + "label": "test_customers.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_customers.py", + "source_file": "tests/test_customers.py", + "source_location": "L1" + }, + { + "id": "tests_test_customers_py_testcase", + "label": "TestCase", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "testcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_factors", + "label": "test_factors.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_factors.py", + "source_file": "tests/test_factors.py", + "source_location": "L1" + }, + { + "id": "tests_test_factors_py_testcase", + "label": "TestCase", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "testcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_inventory_py_testcase", + "label": "TestCase", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "testcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_models_contract", + "label": "test_models_contract.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_models_contract.py", + "source_file": "tests/test_models_contract.py", + "source_location": "L1" + }, + { + "id": "tests_test_urls_contract", + "label": "test_urls_contract.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_urls_contract.py", + "source_file": "tests/test_urls_contract.py", + "source_location": "L1" + }, + { + "id": "tests_test_view_smoke", + "label": "test_view_smoke.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_view_smoke.py", + "source_file": "tests/test_view_smoke.py", + "source_location": "L1" + }, + { + "id": "tests_test_view_smoke_py_testcase", + "label": "TestCase", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "testcase", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_models_init_rationale_1", + "label": "\u067e\u06a9\u06cc\u062c \u0645\u062f\u0644\u200c\u0647\u0627\u06cc admin_panel. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647\u0654 models.py \u0627\u0633\u062a \u0648 \u0622\u0646 \u0631\u0627\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u067e\u06a9\u06cc\u062c \u0645\u062f\u0644\u200c\u0647\u0627\u06cc admin_panel. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647 models.py \u0627\u0633\u062a \u0648 \u0627\u0646 \u0631\u0627...", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L1" + }, + { + "id": "tests_factories_rationale_1", + "label": "\u06a9\u0627\u0631\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0633\u0627\u062e\u062a \u062f\u0627\u062f\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647. \u0627\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u0641\u0642\u0637 \u0631\u0648\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u06a9\u0627\u0631\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0633\u0627\u062e\u062a \u062f\u0627\u062f\u0647 \u0627\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647. \u0627\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u0641\u0642\u0637 \u0631\u0648\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633...", + "source_file": "tests/factories.py", + "source_location": "L1" + }, + { + "id": "tests_factories_rationale_23", + "label": "\u0633\u0627\u062e\u062a \u06a9\u0627\u0631\u0628\u0631. \u0628\u0627 `superuser=True` \u062a\u0645\u0627\u0645 \u0628\u0631\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0639\u0628\u0648\u0631 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0633\u0627\u062e\u062a \u06a9\u0627\u0631\u0628\u0631. \u0628\u0627 `superuser=true` \u062a\u0645\u0627\u0645 \u0628\u0631\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0639\u0628\u0648\u0631 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f....", + "source_file": "tests/factories.py", + "source_location": "L23" + }, + { + "id": "tests_factories_rationale_47", + "label": "\u0633\u0627\u062e\u062a \u0627\u0646\u0628\u0627\u0631. - `viewers` \u0628\u0647 M2M `user` \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f (\u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0634\u0627\u0647\u062f\u0647/\u062a\u0627\u06cc\u06cc\u062f\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0633\u0627\u062e\u062a \u0627\u0646\u0628\u0627\u0631. - `viewers` \u0628\u0647 m2m `user` \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f (\u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0634\u0627\u0647\u062f\u0647/\u062a\u0627\u06cc\u06cc\u062f...", + "source_file": "tests/factories.py", + "source_location": "L47" + }, + { + "id": "tests_factories_rationale_79", + "label": "\u062b\u0628\u062a \u0648\u0631\u0648\u062f \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 (\u0627\u0632 \u0645\u0633\u06cc\u0631 \u0627\u0645\u0646 ProductInStore.save).", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062b\u0628\u062a \u0648\u0631\u0648\u062f \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 (\u0627\u0632 \u0645\u0633\u06cc\u0631 \u0627\u0645\u0646 productinstore.save).", + "source_file": "tests/factories.py", + "source_location": "L79" + }, + { + "id": "tests_factories_rationale_92", + "label": "\u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 (s_in - s_out).", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 (s_in - s_out).", + "source_file": "tests/factories.py", + "source_location": "L92" + }, + { + "id": "tests_test_customers_rationale_1", + "label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0645\u0634\u062a\u0631\u06cc: \u0627\u0641\u0632\u0648\u062f\u0646\u060c \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0646\u06af\u0647\u0628\u0627\u0646 \u062d\u0630\u0641 (\u0639\u062f\u0645 \u062d\u0630\u0641 \u0645\u0634\u062a\u0631\u06cc \u062f\u0627\u0631\u0627\u06cc \u0633\u0627\u0628\u0642\u0647).", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0645\u0634\u062a\u0631\u06cc: \u0627\u0641\u0632\u0648\u062f\u0646\u060c \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0646\u06af\u0647\u0628\u0627\u0646 \u062d\u0630\u0641 (\u0639\u062f\u0645 \u062d\u0630\u0641 \u0645\u0634\u062a\u0631\u06cc \u062f\u0627\u0631\u0627\u06cc \u0633\u0627\u0628\u0642\u0647).", + "source_file": "tests/test_customers.py", + "source_location": "L1" + }, + { + "id": "tests_test_factors_rationale_1", + "label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0641\u0627\u06a9\u062a\u0648\u0631: \u062d\u0630\u0641 \u0646\u0631\u0645\u060c \u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0627\u0646\u0628\u0627\u0631 \u0648 \u062c\u0631\u06cc\u0627\u0646 \u0633\u0627\u062e\u062a \u0641\u0627\u06a9\u062a\u0648\u0631 \u0627\u0632\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0641\u0627\u06a9\u062a\u0648\u0631: \u062d\u0630\u0641 \u0646\u0631\u0645\u060c \u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0627\u0646\u0628\u0627\u0631 \u0648 \u062c\u0631\u06cc\u0627\u0646 \u0633\u0627\u062e\u062a \u0641\u0627\u06a9\u062a\u0648\u0631 \u0627\u0632...", + "source_file": "tests/test_factors.py", + "source_location": "L1" + }, + { + "id": "tests_test_factors_rationale_47", + "label": "\u062a\u0633\u062a \u062c\u0631\u06cc\u0627\u0646 \u0627\u0635\u0644\u06cc \u0648\u06cc\u0648 `newFactor2` (\u0645\u0633\u06cc\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0633\u0627\u062e\u062a \u0641\u0627\u06a9\u062a\u0648\u0631) \u06a9\u0647 \u067e\u0633 \u0627\u0632 \u062a\u0642\u0633\u06cc\u0645\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a \u062c\u0631\u06cc\u0627\u0646 \u0627\u0635\u0644\u06cc \u0648\u06cc\u0648 `newfactor2` (\u0645\u0633\u06cc\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0633\u0627\u062e\u062a \u0641\u0627\u06a9\u062a\u0648\u0631) \u06a9\u0647 \u067e\u0633 \u0627\u0632 \u062a\u0642\u0633\u06cc\u0645...", + "source_file": "tests/test_factors.py", + "source_location": "L47" + }, + { + "id": "tests_test_models_contract_rationale_1", + "label": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f (Contract) \u067e\u06a9\u06cc\u062c \u0645\u062f\u0644\u200c\u0647\u0627 \u067e\u0633 \u0627\u0632 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc. \u0647\u062f\u0641: \u062a\u0636\u0645\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u062a\u0642\u0633\u06cc\u0645\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f (contract) \u067e\u06a9\u06cc\u062c \u0645\u062f\u0644\u200c\u0647\u0627 \u067e\u0633 \u0627\u0632 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc. \u0647\u062f\u0641: \u062a\u0636\u0645\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u062a\u0642\u0633\u06cc\u0645...", + "source_file": "tests/test_models_contract.py", + "source_location": "L1" + }, + { + "id": "tests_test_urls_contract_rationale_1", + "label": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f URL\u0647\u0627 \u0648 \u0648\u06cc\u0648\u0647\u0627 \u067e\u0633 \u0627\u0632 \u062a\u0642\u0633\u06cc\u0645 `views.py` \u0628\u0647 \u067e\u06a9\u06cc\u062c `views/`. \u0646\u06af\u0647\u0628\u0627\u0646 \u062d\u0630\u0641\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f url\u0647\u0627 \u0648 \u0648\u06cc\u0648\u0647\u0627 \u067e\u0633 \u0627\u0632 \u062a\u0642\u0633\u06cc\u0645 `views.py` \u0628\u0647 \u067e\u06a9\u06cc\u062c `views/`. \u0646\u06af\u0647\u0628\u0627\u0646 \u062d\u0630\u0641...", + "source_file": "tests/test_urls_contract.py", + "source_location": "L1" + }, + { + "id": "tests_test_view_smoke_rationale_1", + "label": "\u062a\u0633\u062a \u062f\u0648\u062f\u06cc (Smoke Test) \u062a\u0645\u0627\u0645 \u0627\u0646\u062f\u067e\u0648\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc \u0627\u067e admin_panel. \u0686\u0631\u0627 \u0627\u06cc\u0646 \u062a\u0633\u062a \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a\u061f\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a \u062f\u0648\u062f\u06cc (smoke test) \u062a\u0645\u0627\u0645 \u0627\u0646\u062f\u067e\u0648\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc \u0627\u067e admin_panel. \u0686\u0631\u0627 \u0627\u06cc\u0646 \u062a\u0633\u062a \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a\u061f...", + "source_file": "tests/test_view_smoke.py", + "source_location": "L1" + }, + { + "id": "tests_test_view_smoke_rationale_84", + "label": "(\u0646\u0627\u0645 \u0645\u0633\u06cc\u0631, kwargs, \u0645\u062a\u062f, \u062f\u0627\u062f\u0647\u0654 \u0627\u0631\u0633\u0627\u0644\u06cc)", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "(\u0646\u0627\u0645 \u0645\u0633\u06cc\u0631, kwargs, \u0645\u062a\u062f, \u062f\u0627\u062f\u0647 \u0627\u0631\u0633\u0627\u0644\u06cc)", + "source_file": "tests/test_view_smoke.py", + "source_location": "L84" + }, + { + "id": "ripwire_readme_10_quality_evaluation", + "label": "10. Quality evaluation", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "10. quality evaluation", + "source_file": "ripwire - README.md", + "source_location": "L2846" + }, + { + "id": "ripwire_readme_11_agent_integration", + "label": "11. Agent integration", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "11. agent integration", + "source_file": "ripwire - README.md", + "source_location": "L2873" + }, + { + "id": "ripwire_readme_12_supported_languages_and_formats", + "label": "12. Supported languages and formats", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "12. supported languages and formats", + "source_file": "ripwire - README.md", + "source_location": "L2922" + }, + { + "id": "ripwire_readme_13_performance", + "label": "13. Performance", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "13. performance", + "source_file": "ripwire - README.md", + "source_location": "L2958" + }, + { + "id": "ripwire_readme_14_known_limits", + "label": "14. Known limits", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "14. known limits", + "source_file": "ripwire - README.md", + "source_location": "L2977" + }, + { + "id": "ripwire_readme_15_documentation", + "label": "15. Documentation", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "15. documentation", + "source_file": "ripwire - README.md", + "source_location": "L3015" + }, + { + "id": "ripwire_readme_16_improvement", + "label": "16. Improvement", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "16. improvement", + "source_file": "ripwire - README.md", + "source_location": "L3026" + }, + { + "id": "ripwire_readme_17_license", + "label": "17. License", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "17. license", + "source_file": "ripwire - README.md", + "source_location": "L3041" + }, + { + "id": "ripwire_readme_1_purpose_and_function", + "label": "1. Purpose and function", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. purpose and function", + "source_file": "ripwire - README.md", + "source_location": "L2347" + }, + { + "id": "ripwire_readme_2_system_requirements", + "label": "2. System requirements", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. system requirements", + "source_file": "ripwire - README.md", + "source_location": "L2433" + }, + { + "id": "ripwire_readme_3_1_install_a_prebuilt_binary", + "label": "3.1 Install a prebuilt binary", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.1 install a prebuilt binary", + "source_file": "ripwire - README.md", + "source_location": "L2460" + }, + { + "id": "ripwire_readme_3_2_build_from_source", + "label": "3.2 Build from source", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.2 build from source", + "source_file": "ripwire - README.md", + "source_location": "L2488" + }, + { + "id": "ripwire_readme_3_3_install_the_agent_skills", + "label": "3.3 Install the agent skills", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.3 install the agent skills", + "source_file": "ripwire - README.md", + "source_location": "L2546" + }, + { + "id": "ripwire_readme_3_4_register_the_mcp_server_optional", + "label": "3.4 Register the MCP server (optional)", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.4 register the mcp server (optional)", + "source_file": "ripwire - README.md", + "source_location": "L2566" + }, + { + "id": "ripwire_readme_3_installation", + "label": "3. Installation", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. installation", + "source_file": "ripwire - README.md", + "source_location": "L2458" + }, + { + "id": "ripwire_readme_4_1_make_the_first_map", + "label": "4.1 Make the first map", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4.1 make the first map", + "source_file": "ripwire - README.md", + "source_location": "L2604" + }, + { + "id": "ripwire_readme_4_2_use_the_common_commands", + "label": "4.2 Use the common commands", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4.2 use the common commands", + "source_file": "ripwire - README.md", + "source_location": "L2621" + }, + { + "id": "ripwire_readme_4_first_use", + "label": "4. First use", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. first use", + "source_file": "ripwire - README.md", + "source_location": "L2598" + }, + { + "id": "ripwire_readme_5_command_families", + "label": "5. Command families", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. command families", + "source_file": "ripwire - README.md", + "source_location": "L2645" + }, + { + "id": "ripwire_readme_6_1_output_example", + "label": "6.1 Output example", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.1 output example", + "source_file": "ripwire - README.md", + "source_location": "L2684" + }, + { + "id": "ripwire_readme_6_2_exit_codes", + "label": "6.2 Exit codes", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.2 exit codes", + "source_file": "ripwire - README.md", + "source_location": "L2707" + }, + { + "id": "ripwire_readme_6_3_json_output", + "label": "6.3 JSON output", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.3 json output", + "source_file": "ripwire - README.md", + "source_location": "L2720" + }, + { + "id": "ripwire_readme_6_output_format", + "label": "6. Output format", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. output format", + "source_file": "ripwire - README.md", + "source_location": "L2672" + }, + { + "id": "ripwire_readme_7_accuracy_and_disclosure_rules", + "label": "7. Accuracy and disclosure rules", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7. accuracy and disclosure rules", + "source_file": "ripwire - README.md", + "source_location": "L2728" + }, + { + "id": "ripwire_readme_8_determinism", + "label": "8. Determinism", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "8. determinism", + "source_file": "ripwire - README.md", + "source_location": "L2778" + }, + { + "id": "ripwire_readme_9_verification_and_quality_control", + "label": "9. Verification and quality control", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "9. verification and quality control", + "source_file": "ripwire - README.md", + "source_location": "L2811" + }, + { + "id": "ripwire_readme_reference_guide", + "label": "Reference guide", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "reference guide", + "source_file": "ripwire - README.md", + "source_location": "L2318" + }, + { + "id": "admin_panel_management_commands_gt_esh", + "label": "gt_esh.py", + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": "gt_esh.py", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_gt_esh_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_management_commands_send_daily_report", + "label": "send_daily_report.py", + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "code", + "norm_label": "send_daily_report.py", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_115", + "label": "\u0645\u062a\u062f \u06a9\u0645\u06a9\u06cc \u0635\u0631\u0641\u0627\u064b \u0628\u0631\u0627\u06cc \u062d\u0627\u0644\u062a \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc (Dry Run) \u0628\u062f\u0648\u0646 \u06a9\u0627\u0645\u06cc\u062a \u0632\u0646\u062f\u0647", + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "rationale", + "norm_label": "\u0645\u062a\u062f \u06a9\u0645\u06a9\u06cc \u0635\u0631\u0641\u0627 \u0628\u0631\u0627\u06cc \u062d\u0627\u0644\u062a \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc (dry run) \u0628\u062f\u0648\u0646 \u06a9\u0627\u0645\u06cc\u062a \u0632\u0646\u062f\u0647", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L115" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_123", + "label": "\u0647\u0633\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u06cc\u0628\u0631\u06cc\u062f\u06cc: \u06cc\u06a9 \u0628\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631 \u0631\u0645\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u0646\u0648\u0634\u062a\u0646", + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "rationale", + "norm_label": "\u0647\u0633\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u06cc\u0628\u0631\u06cc\u062f\u06cc: \u06cc\u06a9 \u0628\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631 \u0631\u0645\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u0646\u0648\u0634\u062a\u0646", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L123" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_89", + "label": "\u0627\u062c\u0631\u0627\u06cc \u062d\u0644\u0642\u0647\u200c\u0647\u0627\u06cc \u0632\u0646\u062f\u0647 \u0628\u0627 \u0642\u0641\u0644 \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc IMMEDIATE \u062c\u0647\u062a \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062e\u0637\u0627\u06cc \u0642\u0641\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633", + "_origin": "ast", + "community": 2, + "community_name": "gt_esh.py", + "file_type": "rationale", + "norm_label": "\u0627\u062c\u0631\u0627\u06cc \u062d\u0644\u0642\u0647\u200c\u0647\u0627\u06cc \u0632\u0646\u062f\u0647 \u0628\u0627 \u0642\u0641\u0644 \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc immediate \u062c\u0647\u062a \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062e\u0637\u0627\u06cc \u0642\u0641\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L89" + }, + { + "id": "admin_panel_models_products", + "label": "products.py", + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "products.py", + "source_file": "admin_panel/models/products.py", + "source_location": "L1" + }, + { + "id": "github_copilot_instructions", + "label": "copilot-instructions.md", + "_origin": "ast", + "community": 21, + "community_name": "graphify", + "file_type": "document", + "node_kind": "page", + "norm_label": "copilot-instructions.md", + "source_file": ".github/copilot-instructions.md", + "source_location": "L1" + }, + { + "id": "github_copilot_instructions_graphify", + "label": "graphify", + "_origin": "ast", + "community": 21, + "community_name": "graphify", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify", + "rationale": "A tool for querying repository architecture and structure.", + "source_file": ".github/copilot-instructions.md", + "source_location": "L1" + }, + { + "id": "direntry", + "label": "DirEntry", + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "direntry", + "source_file": "", + "source_location": "" + }, + { + "id": "namespace", + "label": "Namespace", + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "namespace", + "source_file": "", + "source_location": "" + }, + { + "id": "project_tree", + "label": "project_tree.py", + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "project_tree.py", + "source_file": "project_tree.py", + "source_location": "L1" + }, + { + "id": "project_tree_rationale_1", + "label": "Create a safe, deterministic project tree snapshot. Usage: python\u2026", + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "create a safe, deterministic project tree snapshot. usage: python...", + "source_file": "project_tree.py", + "source_location": "L1" + }, + { + "id": "project_tree_rationale_110", + "label": "Scan one directory, pruning excluded directories before recursion.", + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "scan one directory, pruning excluded directories before recursion.", + "source_file": "project_tree.py", + "source_location": "L110" + }, + { + "id": "project_tree_rationale_91", + "label": "Emit a concise warning without aborting the traversal.", + "_origin": "ast", + "community": 23, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "emit a concise warning without aborting the traversal.", + "source_file": "project_tree.py", + "source_location": "L91" + }, + { + "id": "admin_apps", + "label": "admin/apps.py", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "admin/apps.py", + "source_file": "admin/apps.py", + "source_location": "L1" + }, + { + "id": "admin_apps_py_appconfig", + "label": "AppConfig", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "appconfig", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_apps", + "label": "admin_panel/apps.py", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "admin_panel/apps.py", + "source_file": "admin_panel/apps.py", + "source_location": "L1" + }, + { + "id": "admin_panel_apps_py_appconfig", + "label": "AppConfig", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "appconfig", + "source_file": "", + "source_location": "" + }, + { + "id": "backups_refactor_2026_10_09_apps", + "label": "refactor-2026-10-09/apps.py", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "refactor-2026-10-09/apps.py", + "source_file": "backups/refactor-2026-10-09/apps.py", + "source_location": "L1" + }, + { + "id": "backups_refactor_2026_10_09_apps_py_appconfig", + "label": "AppConfig", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "appconfig", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_migrations_0002_auto_20220114_1616", + "label": "0002_auto_20220114_1616.py", + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "norm_label": "0002_auto_20220114_1616.py", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0003_auto_20220115_1401", + "label": "0003_auto_20220115_1401.py", + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "norm_label": "0003_auto_20220115_1401.py", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0031_article_sarresid", + "label": "0031_article_sarresid.py", + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "norm_label": "0031_article_sarresid.py", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "entrypoint", + "label": "entrypoint.sh", + "_origin": "ast", + "community": 26, + "community_name": "manage.py", + "file_type": "code", + "metadata": { + "language": "bash", + "kind": "file" + }, + "norm_label": "entrypoint.sh", + "source_file": "entrypoint.sh", + "source_location": "L1" + }, + { + "id": "entrypoint_sh__entry", + "label": "entrypoint.sh script", + "_origin": "ast", + "community": 26, + "community_name": "manage.py", + "file_type": "code", + "metadata": { + "language": "bash", + "kind": "bash_entrypoint" + }, + "norm_label": "entrypoint.sh script", + "source_file": "entrypoint.sh", + "source_location": "L1" + }, + { + "id": "manage", + "label": "manage.py", + "_origin": "ast", + "community": 26, + "community_name": "manage.py", + "file_type": "code", + "norm_label": "manage.py", + "source_file": "manage.py", + "source_location": "L1" + }, + { + "id": "manage_rationale_2", + "label": "Django's command-line utility for administrative tasks.", + "_origin": "ast", + "community": 26, + "community_name": "manage.py", + "file_type": "rationale", + "norm_label": "django's command-line utility for administrative tasks.", + "source_file": "manage.py", + "source_location": "L2" + }, + { + "id": "manage_rationale_8", + "label": "Run administrative tasks.", + "_origin": "ast", + "community": 26, + "community_name": "manage.py", + "file_type": "rationale", + "norm_label": "run administrative tasks.", + "source_file": "manage.py", + "source_location": "L8" + }, + { + "id": "agents", + "label": "AGENTS.md", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "page", + "norm_label": "agents.md", + "source_file": "AGENTS.md", + "source_location": "L1" + }, + { + "id": "agents_1_codebase_navigation_analysis_ripwire_vs_graphify", + "label": "1. Codebase Navigation & Analysis (Ripwire vs. Graphify)", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. codebase navigation & analysis (ripwire vs. graphify)", + "source_file": "AGENTS.md", + "source_location": "L3" + }, + { + "id": "agents_2_dynamic_help_self_correction_staleness", + "label": "2. Dynamic Help, Self-Correction & Staleness", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. dynamic help, self-correction & staleness", + "source_file": "AGENTS.md", + "source_location": "L32" + }, + { + "id": "agents_3_git_operations_safety", + "label": "3. Git Operations & Safety", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. git operations & safety", + "source_file": "AGENTS.md", + "source_location": "L48" + }, + { + "id": "agents_4_development_server_lifecycle", + "label": "4. Development Server Lifecycle", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. development server lifecycle", + "source_file": "AGENTS.md", + "source_location": "L56" + }, + { + "id": "agents_5_environment_frontend_pwa_safety", + "label": "5. Environment, Frontend & PWA Safety", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. environment, frontend & pwa safety", + "source_file": "AGENTS.md", + "source_location": "L65" + }, + { + "id": "agents_6_end_to_end_browser_tests_playwright", + "label": "6. End-to-End Browser Tests (Playwright)", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. end-to-end browser tests (playwright)", + "source_file": "AGENTS.md", + "source_location": "L75" + }, + { + "id": "agents_project_operating_agent_guidelines", + "label": "Project Operating & Agent Guidelines", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "project operating & agent guidelines", + "source_file": "AGENTS.md", + "source_location": "L1" + }, + { + "id": "agents_routing_gate_pipeline", + "label": "Routing Gate & Pipeline", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "routing gate & pipeline", + "source_file": "AGENTS.md", + "source_location": "L16" + }, + { + "id": "ripwire_readme", + "label": "ripwire - README.md", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "page", + "norm_label": "ripwire - readme.md", + "source_file": "ripwire - README.md", + "source_location": "L1" + }, + { + "id": "ripwire_readme_1_optional_register_the_mcp_server", + "label": "1. (Optional) Register the MCP server", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. (optional) register the mcp server", + "source_file": "ripwire - README.md", + "source_location": "L2127" + }, + { + "id": "ripwire_readme_2_install_the_skills", + "label": "2. Install the skills", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. install the skills", + "source_file": "ripwire - README.md", + "source_location": "L2183" + }, + { + "id": "ripwire_readme_against_other_tools", + "label": "Against other tools", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "against other tools", + "source_file": "ripwire - README.md", + "source_location": "L1617" + }, + { + "id": "ripwire_readme_against_the_leading_graph_database_code_context_mcp_server", + "label": "Against the leading graph-database code-context MCP server", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "against the leading graph-database code-context mcp server", + "source_file": "ripwire - README.md", + "source_location": "L427" + }, + { + "id": "ripwire_readme_better_code_it_automates_the_review_judgments_nobody_has_time_to_make_every_lens_from_published_research", + "label": "Better Code: It automates the review judgments nobody has time to make \u2014 every lens from published research", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "better code: it automates the review judgments nobody has time to make \u2014 every lens from published research", + "source_file": "ripwire - README.md", + "source_location": "L825" + }, + { + "id": "ripwire_readme_documentation", + "label": "Documentation", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "documentation", + "source_file": "ripwire - README.md", + "source_location": "L3107" + }, + { + "id": "ripwire_readme_graph_ranked_retrieval_it_finds_the_right_files_more_often_than_the_alternatives", + "label": "Graph-Ranked Retrieval: It finds the right files more often than the alternatives", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graph-ranked retrieval: it finds the right files more often than the alternatives", + "source_file": "ripwire - README.md", + "source_location": "L471" + }, + { + "id": "ripwire_readme_if_it_works_on_your_codebase_tell_us_what_it_got_wrong", + "label": "If it works on your codebase, tell us what it got wrong", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "if it works on your codebase, tell us what it got wrong", + "source_file": "ripwire - README.md", + "source_location": "L2254" + }, + { + "id": "ripwire_readme_improve_it_with_your_agent", + "label": "Improve it with your agent", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "improve it with your agent", + "source_file": "ripwire - README.md", + "source_location": "L2213" + }, + { + "id": "ripwire_readme_in_the_numbers", + "label": "In the numbers", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "in the numbers", + "source_file": "ripwire - README.md", + "source_location": "L2057" + }, + { + "id": "ripwire_readme_in_the_output", + "label": "In the output", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "in the output", + "source_file": "ripwire - README.md", + "source_location": "L2033" + }, + { + "id": "ripwire_readme_in_the_tests", + "label": "In the tests", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "in the tests", + "source_file": "ripwire - README.md", + "source_location": "L2082" + }, + { + "id": "ripwire_readme_languages", + "label": "Languages", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "languages", + "source_file": "ripwire - README.md", + "source_location": "L2275" + }, + { + "id": "ripwire_readme_licence", + "label": "Licence", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "licence", + "source_file": "ripwire - README.md", + "source_location": "L3135" + }, + { + "id": "ripwire_readme_measured", + "label": "Measured", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "measured", + "source_file": "ripwire - README.md", + "source_location": "L1606" + }, + { + "id": "ripwire_readme_nest_is_a_max_so_it_cannot_tell_a_long_function_from_a_tangled_one", + "label": "`nest=` is a max, so it cannot tell a long function from a tangled one", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "`nest=` is a max, so it cannot tell a long function from a tangled one", + "source_file": "ripwire - README.md", + "source_location": "L1181" + }, + { + "id": "ripwire_readme_quickstart", + "label": "Quickstart", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "quickstart", + "source_file": "ripwire - README.md", + "source_location": "L987" + }, + { + "id": "ripwire_readme_real_runs", + "label": "Real runs", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "real runs", + "source_file": "ripwire - README.md", + "source_location": "L1377" + }, + { + "id": "ripwire_readme_release_notes", + "label": "Release notes", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "release notes", + "source_file": "ripwire - README.md", + "source_location": "L3052" + }, + { + "id": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "label": "Rip'n Fast. Fewer Tokens. Better Code.", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rip'n fast. fewer tokens. better code.", + "source_file": "ripwire - README.md", + "source_location": "L10" + }, + { + "id": "ripwire_readme_same_answer_a_fraction_of_the_tokens_read_this_table_first_if_your_agent_is_on_a_budget", + "label": "Same answer, a fraction of the tokens \u2014 read this table first if your agent is on a budget", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "same answer, a fraction of the tokens \u2014 read this table first if your agent is on a budget", + "source_file": "ripwire - README.md", + "source_location": "L227" + }, + { + "id": "ripwire_readme_saves_tokens_it_answers_for_a_fraction_of_the_context", + "label": "Saves Tokens: It answers for a fraction of the context", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "saves tokens: it answers for a fraction of the context", + "source_file": "ripwire - README.md", + "source_location": "L724" + }, + { + "id": "ripwire_readme_see_the_map_not_just_the_numbers", + "label": "See the map \u2014 not just the numbers", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "see the map \u2014 not just the numbers", + "source_file": "ripwire - README.md", + "source_location": "L310" + }, + { + "id": "ripwire_readme_set_it_up_in_your_coding_agent", + "label": "Set it up in your coding agent", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "set it up in your coding agent", + "source_file": "ripwire - README.md", + "source_location": "L2101" + }, + { + "id": "ripwire_readme_standing_on_the_whole_field", + "label": "Standing on the whole field", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "standing on the whole field", + "source_file": "ripwire - README.md", + "source_location": "L1925" + }, + { + "id": "ripwire_readme_the_goal_one_question_one_complete_answer", + "label": "The goal: one question, one complete answer.", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "the goal: one question, one complete answer.", + "source_file": "ripwire - README.md", + "source_location": "L186" + }, + { + "id": "ripwire_readme_the_honesty_contract", + "label": "The honesty contract", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "the honesty contract", + "source_file": "ripwire - README.md", + "source_location": "L1948" + }, + { + "id": "ripwire_readme_the_quality_panel", + "label": "The quality panel", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "the quality panel", + "source_file": "ripwire - README.md", + "source_location": "L1147" + }, + { + "id": "ripwire_readme_what_it_answers", + "label": "What it answers", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what it answers", + "source_file": "ripwire - README.md", + "source_location": "L945" + }, + { + "id": "ripwire_readme_what_it_misses_and_what_to_run_next", + "label": "What it misses, and what to run next", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what it misses, and what to run next", + "source_file": "ripwire - README.md", + "source_location": "L1953" + }, + { + "id": "ripwire_readme_what_it_saves_you_in_tokens", + "label": "What it saves you, in tokens", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what it saves you, in tokens", + "source_file": "ripwire - README.md", + "source_location": "L1767" + }, + { + "id": "ripwire_readme_where_it_pays_most_and_where_it_does_not", + "label": "Where it pays most, and where it does not", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "where it pays most, and where it does not", + "source_file": "ripwire - README.md", + "source_location": "L751" + }, + { + "id": "ripwire_readme_where_its_own_cycles_go_hardware_counters_per_scope", + "label": "Where its own cycles go \u2014 hardware counters, per scope", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "where its own cycles go \u2014 hardware counters, per scope", + "source_file": "ripwire - README.md", + "source_location": "L1813" + }, + { + "id": "admin_panel_init", + "label": "admin_panel/__init__.py", + "_origin": "ast", + "community": 28, + "community_name": "khatibi/urls.py", + "file_type": "code", + "norm_label": "admin_panel/__init__.py", + "source_file": "admin_panel/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_urls", + "label": "admin_panel/urls.py", + "_origin": "ast", + "community": 28, + "community_name": "khatibi/urls.py", + "file_type": "code", + "norm_label": "admin_panel/urls.py", + "source_file": "admin_panel/urls.py", + "source_location": "L1" + }, + { + "id": "backups_refactor_2026_10_09_urls", + "label": "refactor-2026-10-09/urls.py", + "_origin": "ast", + "community": 28, + "community_name": "khatibi/urls.py", + "file_type": "code", + "norm_label": "refactor-2026-10-09/urls.py", + "source_file": "backups/refactor-2026-10-09/urls.py", + "source_location": "L1" + }, + { + "id": "khatibi_urls", + "label": "khatibi/urls.py", + "_origin": "ast", + "community": 28, + "community_name": "khatibi/urls.py", + "file_type": "code", + "norm_label": "khatibi/urls.py", + "source_file": "khatibi/urls.py", + "source_location": "L1" + }, + { + "id": "khatibi_urls_rationale_1", + "label": "khatibi URL Configuration The `urlpatterns` list routes URLs to views. For more\u2026", + "_origin": "ast", + "community": 28, + "community_name": "khatibi/urls.py", + "file_type": "rationale", + "norm_label": "khatibi url configuration the `urlpatterns` list routes urls to views. for more...", + "source_file": "khatibi/urls.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0004_factor_paytype", + "label": "0004_factor_paytype.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0004_factor_paytype.py", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0013_alter_factor_options", + "label": "0013_alter_factor_options.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0013_alter_factor_options.py", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0014_auto_20220123_1348", + "label": "0014_auto_20220123_1348.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0014_auto_20220123_1348.py", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0017_factoriteam_garantyesh", + "label": "0017_factoriteam_garantyesh.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0017_factoriteam_garantyesh.py", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0020_auto_20220126_1532", + "label": "0020_auto_20220126_1532.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0020_auto_20220126_1532.py", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0021_alter_article_type", + "label": "0021_alter_article_type.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0021_alter_article_type.py", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0022_article_typepy", + "label": "0022_article_typepy.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0022_article_typepy.py", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0023_alter_article_typepy", + "label": "0023_alter_article_typepy.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0023_alter_article_typepy.py", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0027_alter_action_nazar", + "label": "0027_alter_action_nazar.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0027_alter_action_nazar.py", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0029_alter_article_options", + "label": "0029_alter_article_options.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0029_alter_article_options.py", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0034_alter_article_sarresid", + "label": "0034_alter_article_sarresid.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0034_alter_article_sarresid.py", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0035_alter_article_sarresid", + "label": "0035_alter_article_sarresid.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0035_alter_article_sarresid.py", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0037_sarresid_sarresiddt", + "label": "0037_sarresid_sarresiddt.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0037_sarresid_sarresiddt.py", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0040_customer_laghv_bazdid", + "label": "0040_customer_laghv_bazdid.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0040_customer_laghv_bazdid.py", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0048_alter_productinstore_options", + "label": "0048_alter_productinstore_options.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0048_alter_productinstore_options.py", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0055_action_nextnazardt", + "label": "0055_action_nextnazardt.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0055_action_nextnazardt.py", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0056_auto_20260731_1824", + "label": "0056_auto_20260731_1824.py", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "0056_auto_20260731_1824.py", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_finance", + "label": "models/finance.py", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "models/finance.py", + "source_file": "admin_panel/models/finance.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_finance", + "label": "views/finance.py", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "views/finance.py", + "source_file": "admin_panel/views/finance.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_finance_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_finance_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_finance_py_require_post", + "label": "require_POST", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "require_post", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_finance_rationale_236", + "label": "\u06af\u0632\u0627\u0631\u0634 \u062c\u0627\u0645\u0639 \u06af\u0631\u062f\u0634 \u0648 \u062e\u0631\u0648\u062c \u06a9\u0627\u0644\u0627 \u0627\u0632 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u06cc\u0644\u062a\u0631 \u0645\u062a\u0646\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0644\u0627\u060c \u0646\u0648\u0639 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c\u2026", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "rationale", + "norm_label": "\u06af\u0632\u0627\u0631\u0634 \u062c\u0627\u0645\u0639 \u06af\u0631\u062f\u0634 \u0648 \u062e\u0631\u0648\u062c \u06a9\u0627\u0644\u0627 \u0627\u0632 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u06cc\u0644\u062a\u0631 \u0645\u062a\u0646\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0644\u0627\u060c \u0646\u0648\u0639 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c...", + "source_file": "admin_panel/views/finance.py", + "source_location": "L236" + }, + { + "id": "admin_panel_views_finance_rationale_319", + "label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0647\u0648\u0634 \u0645\u0627\u0644\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0642\u062f\u06cc\u0646\u06af\u06cc (BI Dashboard) \u0645\u062c\u0647\u0632 \u0628\u0647 \u0647\u0633\u062a\u0647 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u06f3\u06f6\u06f0 \u062f\u0631\u062c\u0647\u2026", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "rationale", + "norm_label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0647\u0648\u0634 \u0645\u0627\u0644\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0642\u062f\u06cc\u0646\u06af\u06cc (bi dashboard) \u0645\u062c\u0647\u0632 \u0628\u0647 \u0647\u0633\u062a\u0647 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u06f3\u06f6\u06f0 \u062f\u0631\u062c\u0647...", + "source_file": "admin_panel/views/finance.py", + "source_location": "L319" + }, + { + "id": "path", + "label": "Path", + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": "path", + "source_file": "", + "source_location": "" + }, + { + "id": "textio", + "label": "TextIO", + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "code", + "norm_label": "textio", + "source_file": "", + "source_location": "" + }, + { + "id": "project_tree_rationale_145", + "label": "Write the tree depth-first while retaining only one directory level.", + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "rationale", + "norm_label": "write the tree depth-first while retaining only one directory level.", + "source_file": "project_tree.py", + "source_location": "L145" + }, + { + "id": "project_tree_rationale_176", + "label": "Build a fixed-width header so it can be updated after streaming the tree.", + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "rationale", + "norm_label": "build a fixed-width header so it can be updated after streaming the tree.", + "source_file": "project_tree.py", + "source_location": "L176" + }, + { + "id": "project_tree_rationale_192", + "label": "Create the requested output file; all other filesystem access is read-only.", + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "rationale", + "norm_label": "create the requested output file; all other filesystem access is read-only.", + "source_file": "project_tree.py", + "source_location": "L192" + }, + { + "id": "project_tree_rationale_67", + "label": "Counters for entries included in the rendered snapshot.", + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "rationale", + "norm_label": "counters for entries included in the rendered snapshot.", + "source_file": "project_tree.py", + "source_location": "L67" + }, + { + "id": "project_tree_rationale_97", + "label": "Return a normalized absolute path without requiring it to exist.", + "_origin": "ast", + "community": 33, + "community_name": "write_tree", + "file_type": "rationale", + "norm_label": "return a normalized absolute path without requiring it to exist.", + "source_file": "project_tree.py", + "source_location": "L97" + }, + { + "id": "admin_panel_migrations_0005_auto_20220121_2054", + "label": "0005_auto_20220121_2054.py", + "_origin": "ast", + "community": 34, + "community_name": "0005_auto_20220121_2054.py", + "file_type": "code", + "norm_label": "0005_auto_20220121_2054.py", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0006_auto_20220121_2100", + "label": "0006_auto_20220121_2100.py", + "_origin": "ast", + "community": 35, + "community_name": "0006_auto_20220121_2100.py", + "file_type": "code", + "norm_label": "0006_auto_20220121_2100.py", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0009_remove_storeroom_user", + "label": "0009_remove_storeroom_user.py", + "_origin": "ast", + "community": 36, + "community_name": "0009_remove_storeroom_user.py", + "file_type": "code", + "norm_label": "0009_remove_storeroom_user.py", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0010_auto_20220122_1546", + "label": "0010_auto_20220122_1546.py", + "_origin": "ast", + "community": 37, + "community_name": "0010_auto_20220122_1546.py", + "file_type": "code", + "norm_label": "0010_auto_20220122_1546.py", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0025_action_actiontype", + "label": "0025_action_actiontype.py", + "_origin": "ast", + "community": 38, + "community_name": "0025_action_actiontype.py", + "file_type": "code", + "norm_label": "0025_action_actiontype.py", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0028_action_grade", + "label": "0028_action_grade.py", + "_origin": "ast", + "community": 39, + "community_name": "0028_action_grade.py", + "file_type": "code", + "norm_label": "0028_action_grade.py", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0030_auto_20220414_1047", + "label": "0030_auto_20220414_1047.py", + "_origin": "ast", + "community": 40, + "community_name": "0030_auto_20220414_1047.py", + "file_type": "code", + "norm_label": "0030_auto_20220414_1047.py", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0032_article_paystatus", + "label": "0032_article_paystatus.py", + "_origin": "ast", + "community": 41, + "community_name": "0032_article_paystatus.py", + "file_type": "code", + "norm_label": "0032_article_paystatus.py", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0033_article_nahvepardakht", + "label": "0033_article_nahvepardakht.py", + "_origin": "ast", + "community": 42, + "community_name": "0033_article_nahvepardakht.py", + "file_type": "code", + "norm_label": "0033_article_nahvepardakht.py", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "label": "0039_customer_last_bazdid_dt.py", + "_origin": "ast", + "community": 43, + "community_name": "0039_customer_last_bazdid_dt.py", + "file_type": "code", + "norm_label": "0039_customer_last_bazdid_dt.py", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0041_auto_20240216_1607", + "label": "0041_auto_20240216_1607.py", + "_origin": "ast", + "community": 44, + "community_name": "0041_auto_20240216_1607.py", + "file_type": "code", + "norm_label": "0041_auto_20240216_1607.py", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0044_sarresid_desc", + "label": "0044_sarresid_desc.py", + "_origin": "ast", + "community": 45, + "community_name": "0044_sarresid_desc.py", + "file_type": "code", + "norm_label": "0044_sarresid_desc.py", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0049_alter_productinstore_options", + "label": "0049_alter_productinstore_options.py", + "_origin": "ast", + "community": 47, + "community_name": "0049_alter_productinstore_options.py", + "file_type": "code", + "norm_label": "0049_alter_productinstore_options.py", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L1" + }, + { + "id": "gemini", + "label": "GEMINI.md", + "_origin": "ast", + "community": 48, + "community_name": "GEMINI.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "gemini.md", + "source_file": "GEMINI.md", + "source_location": "L1" + }, + { + "id": "gemini_graphify", + "label": "graphify", + "_origin": "ast", + "community": 48, + "community_name": "GEMINI.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify", + "source_file": "GEMINI.md", + "source_location": "L1" + }, + { + "id": "admin_migrations_init", + "label": "admin/migrations/__init__.py", + "_origin": "ast", + "community": 49, + "community_name": "admin/migrations/__init__.py", + "file_type": "code", + "norm_label": "admin/migrations/__init__.py", + "source_file": "admin/migrations/__init__.py", + "source_location": null + }, + { + "id": "admin_init", + "label": "admin/__init__.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "admin/__init__.py", + "source_file": "admin/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_views_auth", + "label": "auth.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "auth.py", + "source_file": "admin_panel/views/auth.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_cheque_inquiry", + "label": "cheque_inquiry.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "cheque_inquiry.py", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_cheque_inquiry_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_cheque_inquiry_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_customers", + "label": "views/customers.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "views/customers.py", + "source_file": "admin_panel/views/customers.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_customers_py_csrf_exempt", + "label": "csrf_exempt", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "csrf_exempt", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_customers_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_customers_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_factors", + "label": "views/factors.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "views/factors.py", + "source_file": "admin_panel/views/factors.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_factors_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_factors_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_factors_py_require_post", + "label": "require_POST", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "require_post", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_helpers", + "label": "_helpers.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "_helpers.py", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_helpers_py_exception", + "label": "Exception", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_init", + "label": "views/__init__.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "views/__init__.py", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L1" + }, + { + "id": "admin_urls", + "label": "admin/urls.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "admin/urls.py", + "source_file": "admin/urls.py", + "source_location": "L1" + }, + { + "id": "admin_views", + "label": "admin/views.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "admin/views.py", + "source_file": "admin/views.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_cheque_inquiry_rationale_229", + "label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u0645\u0631\u06a9\u0632\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc: sayad_id (GET)", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u0645\u0631\u06a9\u0632\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc: sayad_id (get)", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L229" + }, + { + "id": "admin_panel_views_cheque_inquiry_rationale_252", + "label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062b\u0628\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u067e\u0627\u0633\u0627\u0631\u06af\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc: sayad_id, national_id,\u2026", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062b\u0628\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u067e\u0627\u0633\u0627\u0631\u06af\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc: sayad_id, national_id,...", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L252" + }, + { + "id": "admin_panel_views_helpers_rationale_1", + "label": "\u062a\u0648\u0627\u0628\u0639 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0644\u0627\u06cc\u0647\u0654 \u0648\u06cc\u0648\u0647\u0627.", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062a\u0648\u0627\u0628\u0639 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0644\u0627\u06cc\u0647 \u0648\u06cc\u0648\u0647\u0627.", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_helpers_rationale_13", + "label": "\u062e\u0637\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0646\u0628\u0627\u0631", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062e\u0637\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0646\u0628\u0627\u0631", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L13" + }, + { + "id": "admin_panel_views_helpers_rationale_18", + "label": "\u062a\u0627\u0628\u0639 \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0639\u062f\u062f", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062a\u0627\u0628\u0639 \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0639\u062f\u062f", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L18" + }, + { + "id": "admin_panel_views_helpers_rationale_29", + "label": "\u062a\u0628\u062f\u06cc\u0644 \u0627\u0645\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 pDatepicker \u0628\u0647 \u0645\u06cc\u0644\u0627\u062f\u06cc", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062a\u0628\u062f\u06cc\u0644 \u0627\u0645\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 pdatepicker \u0628\u0647 \u0645\u06cc\u0644\u0627\u062f\u06cc", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L29" + }, + { + "id": "admin_panel_views_helpers_rationale_42", + "label": "\u062a\u0628\u062f\u06cc\u0644 \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u062a\u0627\u06cc\u0645\u200c\u0627\u0633\u062a\u0645\u067e\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062a\u0628\u062f\u06cc\u0644 \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u062a\u0627\u06cc\u0645\u200c\u0627\u0633\u062a\u0645\u067e\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L42" + }, + { + "id": "admin_panel_views_init_rationale_1", + "label": "\u067e\u06a9\u06cc\u062c \u0648\u06cc\u0648\u0647\u0627\u06cc \u0627\u067e admin_panel. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647\u0654 \u0633\u0627\u0628\u0642\u2026", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u067e\u06a9\u06cc\u062c \u0648\u06cc\u0648\u0647\u0627\u06cc \u0627\u067e admin_panel. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0628\u0642...", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_init", + "label": "commands/__init__.py", + "_origin": "ast", + "community": 57, + "community_name": "commands/__init__.py", + "file_type": "code", + "norm_label": "commands/__init__.py", + "source_file": "admin_panel/management/commands/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_management_init", + "label": "management/__init__.py", + "_origin": "ast", + "community": 58, + "community_name": "management/__init__.py", + "file_type": "code", + "norm_label": "management/__init__.py", + "source_file": "admin_panel/management/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_migrations_init", + "label": "admin_panel/migrations/__init__.py", + "_origin": "ast", + "community": 59, + "community_name": "admin_panel/migrations/__init__.py", + "file_type": "code", + "norm_label": "admin_panel/migrations/__init__.py", + "source_file": "admin_panel/migrations/__init__.py", + "source_location": null + }, + { + "id": "backups_refactor_2026_10_09_views", + "label": "refactor-2026-10-09/views.py", + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "refactor-2026-10-09/views.py", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1" + }, + { + "id": "backups_refactor_2026_10_09_views_py_csrf_exempt", + "label": "csrf_exempt", + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "csrf_exempt", + "source_file": "", + "source_location": "" + }, + { + "id": "backups_refactor_2026_10_09_views_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "backups_refactor_2026_10_09_views_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_1281", + "label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0648 \u06a9\u0627\u0631\u062a\u0627\u0628\u0644 \u062c\u0627\u0645\u0639 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631", + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "rationale", + "norm_label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0648 \u06a9\u0627\u0631\u062a\u0627\u0628\u0644 \u062c\u0627\u0645\u0639 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1281" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_2852", + "label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u0645\u0631\u06a9\u0632\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc: sayad_id (GET)", + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "rationale", + "norm_label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u0645\u0631\u06a9\u0632\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc: sayad_id (get)", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2852" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_395", + "label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0647\u0648\u0634 \u0645\u0627\u0644\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0642\u062f\u06cc\u0646\u06af\u06cc (BI Dashboard) \u0645\u062c\u0647\u0632 \u0628\u0647 \u0647\u0633\u062a\u0647 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u06f3\u06f6\u06f0 \u062f\u0631\u062c\u0647\u2026", + "_origin": "ast", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "file_type": "rationale", + "norm_label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0647\u0648\u0634 \u0645\u0627\u0644\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0642\u062f\u06cc\u0646\u06af\u06cc (bi dashboard) \u0645\u062c\u0647\u0632 \u0628\u0647 \u0647\u0633\u062a\u0647 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u06f3\u06f6\u06f0 \u062f\u0631\u062c\u0647...", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L395" + }, + { + "id": "admin_panel_migrations_0001_initial", + "label": "0001_initial.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0001_initial.py", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0007_productinstore_factor", + "label": "0007_productinstore_factor.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0007_productinstore_factor.py", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0008_storeroom_user", + "label": "0008_storeroom_user.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0008_storeroom_user.py", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0012_visitqueue_user", + "label": "0012_visitqueue_user.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0012_visitqueue_user.py", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0018_alter_factoriteam_product", + "label": "0018_alter_factoriteam_product.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0018_alter_factoriteam_product.py", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0019_article_articletype", + "label": "0019_article_articletype.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0019_article_articletype.py", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0024_action", + "label": "0024_action.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0024_action.py", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0036_sarresid", + "label": "0036_sarresid.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0036_sarresid.py", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0038_auto_20240213_1735", + "label": "0038_auto_20240213_1735.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0038_auto_20240213_1735.py", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0046_auto_20260624_1818", + "label": "0046_auto_20260624_1818.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0046_auto_20260624_1818.py", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0054_auto_20260715_2250", + "label": "0054_auto_20260715_2250.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0054_auto_20260715_2250.py", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_init", + "label": "templatetags/__init__.py", + "_origin": "ast", + "community": 86, + "community_name": "templatetags/__init__.py", + "file_type": "code", + "norm_label": "templatetags/__init__.py", + "source_file": "admin_panel/templatetags/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_migrations_0011_storeroom_user", + "label": "0011_storeroom_user.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0011_storeroom_user.py", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0015_auto_20220124_0858", + "label": "0015_auto_20220124_0858.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0015_auto_20220124_0858.py", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0016_factor_user", + "label": "0016_factor_user.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0016_factor_user.py", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0026_auto_20220209_1924", + "label": "0026_auto_20220209_1924.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0026_auto_20220209_1924.py", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0042_article_user", + "label": "0042_article_user.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0042_article_user.py", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0043_sarresid_user", + "label": "0043_sarresid_user.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0043_sarresid_user.py", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0045_auto_20260610_1421", + "label": "0045_auto_20260610_1421.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0045_auto_20260610_1421.py", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0050_storetransferrequest", + "label": "0050_storetransferrequest.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0050_storetransferrequest.py", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0051_auto_20260705_1356", + "label": "0051_auto_20260705_1356.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0051_auto_20260705_1356.py", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0052_storeroomowner", + "label": "0052_storeroomowner.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0052_storeroomowner.py", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0053_storeroom_owners", + "label": "0053_storeroom_owners.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0053_storeroom_owners.py", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L1" + }, + { + "id": "khatibi_init", + "label": "khatibi/__init__.py", + "_origin": "ast", + "community": 90, + "community_name": "khatibi/__init__.py", + "file_type": "code", + "norm_label": "khatibi/__init__.py", + "source_file": "khatibi/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup", + "label": "sqlite_db_backup.py", + "_origin": "ast", + "community": 93, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "sqlite_db_backup.py", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L1" + }, + { + "id": "khatibi_production_settings", + "label": "production_settings.py", + "_origin": "ast", + "community": 93, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "production_settings.py", + "source_file": "khatibi/production_settings.py", + "source_location": "L1" + }, + { + "id": "khatibi_settings", + "label": "settings.py", + "_origin": "ast", + "community": 93, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "settings.py", + "source_file": "khatibi/settings.py", + "source_location": "L1" + }, + { + "id": "khatibi_settings_rationale_1", + "label": "Django settings for khatibi project. Generated by 'django-admin startproject'\u2026", + "_origin": "ast", + "community": 93, + "community_name": "sqlite_db_backup.py", + "file_type": "rationale", + "norm_label": "django settings for khatibi project. generated by 'django-admin startproject'...", + "source_file": "khatibi/settings.py", + "source_location": "L1" + }, + { + "id": "backups_refactor_2026_10_09_views_py_require_post", + "label": "require_POST", + "_origin": "ast", + "community": 94, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "require_post", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_rationale_158", + "label": "\u062a\u0636\u0645\u06cc\u0646 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc Volume \u0647\u0627\u06cc \u062f\u0627\u06a9\u0631 \u062f\u0631 \u0647\u0631 \u0634\u0631\u0627\u06cc\u0637\u06cc", + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "rationale", + "norm_label": "\u062a\u0636\u0645\u06cc\u0646 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc volume \u0647\u0627\u06cc \u062f\u0627\u06a9\u0631 \u062f\u0631 \u0647\u0631 \u0634\u0631\u0627\u06cc\u0637\u06cc", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L158" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_rationale_30", + "label": "\u0641\u0642\u0637 \u0641\u0644\u06af \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062e\u0631\u0648\u062c \u0646\u0627\u06af\u0647\u0627\u0646\u06cc (sys.exit) \u0628\u0627\u0639\u062b \u062e\u0631\u0627\u0628\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0646\u062c\u06cc\u0646 \u062f\u0631\u2026", + "_origin": "ast", + "community": 95, + "community_name": "Command", + "file_type": "rationale", + "norm_label": "\u0641\u0642\u0637 \u0641\u0644\u06af \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062e\u0631\u0648\u062c \u0646\u0627\u06af\u0647\u0627\u0646\u06cc (sys.exit) \u0628\u0627\u0639\u062b \u062e\u0631\u0627\u0628\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0646\u062c\u06cc\u0646 \u062f\u0631...", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L30" + }, + { + "id": "backups_refactor_2026_10_09_views_py_exception", + "label": "Exception", + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_39", + "label": "\u062e\u0637\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0646\u0628\u0627\u0631", + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "rationale", + "norm_label": "\u062e\u0637\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0646\u0628\u0627\u0631", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L39" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_53", + "label": "\u062a\u0628\u062f\u06cc\u0644 \u0627\u0645\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 pDatepicker \u0628\u0647 \u0645\u06cc\u0644\u0627\u062f\u06cc", + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "rationale", + "norm_label": "\u062a\u0628\u062f\u06cc\u0644 \u0627\u0645\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 pdatepicker \u0628\u0647 \u0645\u06cc\u0644\u0627\u062f\u06cc", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L53" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_65", + "label": "\u062a\u0628\u062f\u06cc\u0644 \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u062a\u0627\u06cc\u0645\u200c\u0627\u0633\u062a\u0645\u067e\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a", + "_origin": "ast", + "community": 97, + "community_name": "newFactor2", + "file_type": "rationale", + "norm_label": "\u062a\u0628\u062f\u06cc\u0644 \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u062a\u0627\u06cc\u0645\u200c\u0627\u0633\u062a\u0645\u067e\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L65" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_2875", + "label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062b\u0628\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u067e\u0627\u0633\u0627\u0631\u06af\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc: sayad_id, national_id,\u2026", + "_origin": "ast", + "community": 98, + "community_name": "inventory_movements_report", + "file_type": "rationale", + "norm_label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062b\u0628\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u067e\u0627\u0633\u0627\u0631\u06af\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc: sayad_id, national_id,...", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2875" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_313", + "label": "\u06af\u0632\u0627\u0631\u0634 \u062c\u0627\u0645\u0639 \u06af\u0631\u062f\u0634 \u0648 \u062e\u0631\u0648\u062c \u06a9\u0627\u0644\u0627 \u0627\u0632 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u06cc\u0644\u062a\u0631 \u0645\u062a\u0646\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0644\u0627\u060c \u0646\u0648\u0639 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c\u2026", + "_origin": "ast", + "community": 98, + "community_name": "inventory_movements_report", + "file_type": "rationale", + "norm_label": "\u06af\u0632\u0627\u0631\u0634 \u062c\u0627\u0645\u0639 \u06af\u0631\u062f\u0634 \u0648 \u062e\u0631\u0648\u062c \u06a9\u0627\u0644\u0627 \u0627\u0632 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u06cc\u0644\u062a\u0631 \u0645\u062a\u0646\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0644\u0627\u060c \u0646\u0648\u0639 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c...", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L313" + }, + { + "id": "backups_refactor_2026_10_09_views_rationale_43", + "label": "\u062a\u0627\u0628\u0639 \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0639\u062f\u062f", + "_origin": "ast", + "community": 98, + "community_name": "inventory_movements_report", + "file_type": "rationale", + "norm_label": "\u062a\u0627\u0628\u0639 \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0639\u062f\u062f", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L43" + }, + { + "id": "tests_test_models_contract_py_simpletestcase", + "label": "SimpleTestCase", + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": "simpletestcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_models_contract_rationale_67", + "label": "\u0631\u0641\u062a\u0627\u0631 star-import \u0628\u0627\u06cc\u062f \u062f\u0642\u06cc\u0642\u0627\u064b \u0645\u0627\u0646\u0646\u062f \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647\u200c\u06cc \u0642\u0628\u0644\u06cc \u062d\u0641\u0638 \u0634\u0648\u062f\u061b \u0686\u0631\u0627\u06a9\u0647\u2026", + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "rationale", + "norm_label": "\u0631\u0641\u062a\u0627\u0631 star-import \u0628\u0627\u06cc\u062f \u062f\u0642\u06cc\u0642\u0627 \u0645\u0627\u0646\u0646\u062f \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647\u200c\u06cc \u0642\u0628\u0644\u06cc \u062d\u0641\u0638 \u0634\u0648\u062f\u061b \u0686\u0631\u0627\u06a9\u0647...", + "source_file": "tests/test_models_contract.py", + "source_location": "L67" + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html", + "label": "customersBK.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "contributor": null, + "file_type": "code", + "norm_label": "customersbk.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_datatables", + "label": "DataTables Library", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "contributor": null, + "file_type": "concept", + "norm_label": "datatables library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 322, + 327 + ], + "source_url": null + }, + { + "id": "concept_jquery", + "label": "jQuery", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "contributor": null, + "file_type": "concept", + "norm_label": "jquery", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 321, + 400 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "label": "hesabdariCheckPassFail.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "code", + "norm_label": "hesabdaricheckpassfail.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_data_customer", + "label": "Customer Data Object", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "customer data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "source_url": null + }, + { + "id": "admin_panel_data_factor", + "label": "Factor Data Object", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "factor data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 72, + 72 + ], + "source_url": null + }, + { + "id": "admin_panel_data_sarresid", + "label": "Sarresid Data Object", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "sarresid data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 54, + 54 + ], + "source_url": null + }, + { + "id": "admin_panel_url_customernew", + "label": "admin_panel:customerNew URL", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:customernew url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "source_url": null + }, + { + "id": "admin_panel_url_pardakhtnesiye", + "label": "admin_panel:pardakhtNesiye URL", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:pardakhtnesiye url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 111, + 111 + ], + "source_url": null + }, + { + "id": "admin_panel_url_passcheck", + "label": "/panel/passCheck/ URL", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "/panel/passcheck/ url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 201, + 201 + ], + "source_url": null + }, + { + "id": "django_permission_viewreportmali", + "label": "admin_panel.ViewReportMali Permission", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel.viewreportmali permission", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 4, + 4 + ], + "source_url": null + }, + { + "id": "javascript_library_jquery", + "label": "jQuery JS Library", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "jquery js library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 172, + 172 + ], + "source_url": null + }, + { + "id": "javascript_library_pdatepicker", + "label": "pDatepicker JS Library", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "pdatepicker js library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 180, + 180 + ], + "source_url": null + }, + { + "id": "copilot_chat", + "label": "Copilot Chat", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "concept", + "norm_label": "copilot chat", + "rationale": "The user interface where the /graphify command is invoked.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_explain", + "label": "graphify explain", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "concept", + "norm_label": "graphify explain", + "rationale": "A subcommand for getting a focused explanation of a concept.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_path", + "label": "graphify path", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "concept", + "norm_label": "graphify path", + "rationale": "A subcommand for finding relationships between two entities.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_query", + "label": "graphify query", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "concept", + "norm_label": "graphify query", + "rationale": "A subcommand for asking general questions about the repository architecture.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_graph_json", + "label": "graphify-out/graph.json", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/graph.json", + "rationale": "The primary data source for graphify commands.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_graph_report_md", + "label": "graphify-out/GRAPH_REPORT.md", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/graph_report.md", + "rationale": "A document for broad architecture review.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_wiki_index_md", + "label": "graphify-out/wiki/index.md", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/wiki/index.md", + "rationale": "A navigation aid for broad exploration.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_entezar_html", + "label": "admin_panel/entezar.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "admin_panel/entezar.html", + "contributor": null, + "file_type": "code", + "norm_label": "admin_panel/entezar.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_templatetags_custom_tags_tojalali", + "label": "toJalali filter", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "admin_panel/entezar.html", + "contributor": null, + "file_type": "code", + "norm_label": "tojalali filter", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 35, + 35 + ], + "source_url": null + }, + { + "id": "concept_customer_data", + "label": "Customer Data Structure", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "admin_panel/entezar.html", + "contributor": null, + "file_type": "concept", + "norm_label": "customer data structure", + "rationale": "The template iterates over a 'customers' collection and accesses attributes like id, name_family, last_bazdid_dt, phone1, phone2, and address, implying a consistent data structure for a customer.", + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 25, + 25 + ], + "source_url": null + }, + { + "id": "concept_kamadatepicker", + "label": "kamaDatepicker Library", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "admin_panel/entezar.html", + "contributor": null, + "file_type": "concept", + "norm_label": "kamadatepicker library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 203, + 203 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html_createcs", + "label": "createCS click handler", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Customer Modals UI", + "contributor": null, + "file_type": "code", + "norm_label": "createcs click handler", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 328, + 344 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html_openrow", + "label": "openRow click handler", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Customer Modals UI", + "contributor": null, + "file_type": "code", + "norm_label": "openrow click handler", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 358, + 383 + ], + "source_url": null + }, + { + "id": "concept_customer_modal_ui", + "label": "Customer Modals UI", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Customer Modals UI", + "contributor": null, + "file_type": "concept", + "norm_label": "customer modals ui", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 202, + 319 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customernewbackup_html", + "label": "customerNewBackup.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "customerIDFactorBackup.html", + "contributor": null, + "file_type": "code", + "norm_label": "customernewbackup.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_urls_newfactor", + "label": "admin_panel:newFactor URL", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "customerIDFactorBackup.html", + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:newfactor url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_category", + "label": "Category Data", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "customerIDFactorBackup.html", + "contributor": null, + "file_type": "concept", + "norm_label": "category data", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_client_side_form_logic", + "label": "Client-side Form Logic", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "customerIDFactorBackup.html", + "contributor": null, + "file_type": "concept", + "norm_label": "client-side form logic", + "rationale": "The template contains numerous elements with specific IDs (e.g., 'listPrds', 'btnAdd09', 'submitFactor', 'prdsList') and a complex, dynamic table structure, which strongly implies that JavaScript is used to manage user interactions, assemble form data, and trigger submission.", + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_customer", + "label": "Customer Data", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "customerIDFactorBackup.html", + "contributor": null, + "file_type": "concept", + "norm_label": "customer data", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_concepts_csrf_token", + "label": "CSRF Token", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "customerIDFactorBackup.html", + "contributor": null, + "file_type": "concept", + "norm_label": "csrf token", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_template_tags_custom_tags", + "label": "custom_tags", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "customerIDFactorBackup.html", + "contributor": null, + "file_type": "concept", + "norm_label": "custom_tags", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_template_tags_static", + "label": "static", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "customerIDFactorBackup.html", + "contributor": null, + "file_type": "concept", + "norm_label": "static", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_base_html", + "label": "base.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 61, + "community_name": "base.html", + "contributor": null, + "file_type": "code", + "norm_label": "base.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 1, + 1 + ], + "source_url": null + }, + { + "id": "admin_panel_templatetags_custom_tags_tocurrency", + "label": "toCurrency", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 85, + "community_name": "toCurrency", + "contributor": null, + "file_type": "code", + "norm_label": "tocurrency", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 14, + 14 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_login", + "label": "admin_panel/login.html", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "code", + "norm_label": "admin_panel/login.html", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "admin_panel_templates_admin_panel_storebk1", + "label": "admin_panel/storeBK1.html", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "code", + "norm_label": "admin_panel/storebk1.html", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "javascript_kamadatepicker", + "label": "kamaDatepicker", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "code", + "norm_label": "kamadatepicker", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "static_admin_panel_bulma-rtl_min_css", + "label": "admin_panel/bulma-rtl.min.css", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "code", + "norm_label": "admin_panel/bulma-rtl.min.css", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_csrf_token", + "label": "Django CSRF Token", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django csrf token", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_custom_tags", + "label": "Django Custom Tags", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django custom tags", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_static_files", + "label": "Django Static Files", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django static files", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_url_admin_panel_newstore", + "label": "Django URL: admin_panel:newStore", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django url: admin_panel:newstore", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_url_admin_panel_operations", + "label": "Django URL: admin_panel:operations", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django url: admin_panel:operations", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_url_admin_panel_p_login", + "label": "Django URL: admin_panel:p_login", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django url: admin_panel:p_login", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_url_admin_panel_store", + "label": "Django URL: admin_panel:store", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django url: admin_panel:store", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "form_field_password", + "label": "Form Field: password", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "form field: password", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "form_field_storename", + "label": "Form Field: storeName", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "form field: storename", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "form_field_username", + "label": "Form Field: username", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "form field: username", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "product_property_mojodi", + "label": "Product Property: mojodi", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "product property: mojodi", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "product_property_product_name", + "label": "Product Property: product_name", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "product property: product_name", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "template_variable_message", + "label": "Template Variable: message", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "template variable: message", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "template_variable_productsum", + "label": "Template Variable: productSum", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "template variable: productsum", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "template_variable_s_id", + "label": "Template Variable: s_id", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "template variable: s_id", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "admin_panel_templates_admin_panel_bedehbk", + "label": "admin_panel/templates/admin_panel/bedehiBK.html", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/bedehibk.html", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeraction", + "label": "admin_panel/templates/admin_panel/customerAction.html", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customeraction.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeractioninc_html", + "label": "admin_panel/templates/admin_panel/customerActionInc.html", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customeractioninc.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_urls_customernewaction", + "label": "admin_panel:customerNewAction URL", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "admin_panel:customernewaction url", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "concept_action_model", + "label": "Action Data Model", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "action data model", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "concept_user", + "label": "User Data Model", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "user data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "django_template_tag_static", + "label": "Django Static Tag", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "django static tag" + }, + { + "id": "django_template_tag_url", + "label": "Django 'url' template tag", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "django 'url' template tag", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_bulma", + "label": "Bulma CSS", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "bulma css", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_datatables", + "label": "DataTables.js", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "datatables.js", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_pdatepicker", + "label": "pDatepicker.js", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "pdatepicker.js", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "django_templatetags_tojalali", + "label": "toJalali", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "code", + "norm_label": "tojalali", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 60 + }, + { + "id": "concept_articl_model", + "label": "Articl Model", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "articl model", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "concept_customer_model", + "label": "Customer Model", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "customer model", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "django_context_variable_articls", + "label": "articls", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "articls", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "id": "django_context_variable_mandehesabkp", + "label": "mandehesabKP", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "mandehesabkp", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 18 + }, + { + "id": "django_urls_admin_panel_bedehi", + "label": "admin_panel:bedehi", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "admin_panel:bedehi", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 10 + }, + { + "id": "django_urls_admin_panel_bedehikhadamat", + "label": "admin_panel:bedehiKhadamat", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "admin_panel:bedehikhadamat", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 11 + }, + { + "id": "django_urls_admin_panel_bedehinasb", + "label": "admin_panel:bedehiNasb", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "admin_panel:bedehinasb", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 12 + }, + { + "id": "django_urls_admin_panel_customer", + "label": "admin_panel:customer", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "admin_panel:customer", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "id": "admin_panel_templates_admin_panel_bedehi_html", + "label": "admin_panel/templates/admin_panel/bedehi.html", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "document", + "norm_label": "admin_panel/templates/admin_panel/bedehi.html", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerbase", + "label": "admin_panel/templates/admin_panel/customerBase.html", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerbase.html", + "source_file": "admin_panel/templates/admin_panel/customerBase.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerid", + "label": "admin_panel/templates/admin_panel/customerID.html", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerid.html", + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "id": "admin_panel_views_customer_delete", + "label": "/panel/customer/{id}/del", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "code", + "norm_label": "/panel/customer/{id}/del", + "source_file": null + }, + { + "id": "concept_url_admin_panel_newfactor", + "label": "URL: admin_panel:newFactor", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "url: admin_panel:newfactor", + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "id": "django_contrib_auth_models_permission", + "label": "Django Permission", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "django permission", + "source_file": null + }, + { + "id": "django_templatetags_static", + "label": "Django Static Files", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "django static files", + "source_file": null + }, + { + "id": "javascript_jquery", + "label": "jQuery", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "jquery", + "source_file": null + }, + { + "id": "javascript_pdatepicker", + "label": "pDatepicker", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "pdatepicker", + "source_file": null + }, + { + "id": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "label": "hesabdariCheckPass.html", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "hesabdaricheckpass.html", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "label": "hesabdariResidNashode.html", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "hesabdariresidnashode.html", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "lib_jquery", + "label": "jQuery", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "jquery", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "verification": "unverified" + }, + { + "id": "lib_pdatepicker", + "label": "pDatepicker JS Library", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "pdatepicker js library", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags", + "label": "custom_tags", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "custom_tags", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags_tocurrency", + "label": "toCurrency", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "tocurrency", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags_tojalali", + "label": "toJalali", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "tojalali", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "admin_panel_urls_customernew", + "label": "admin_panel:customerNew", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "admin_panel:customernew", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "admin_panel_urls_pardakhtnesiye", + "label": "admin_panel:pardakhtNesiye", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "admin_panel:pardakhtnesiye", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "admin_panel_urls_passcheck", + "label": "/panel/passCheck/", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "/panel/passcheck/", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "concept_all_sarresid", + "label": "all_sarresid", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "all_sarresid", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "django_permissions_admin_panel_viewreportmali", + "label": "admin_panel.ViewReportMali", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "admin_panel.viewreportmali", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 4 + }, + { + "id": "django_templatetags_custom_tags", + "label": "custom_tags", + "_origin": "semantic", + "community": 29, + "community_name": "admin_panel/entezar.html", + "file_type": "code", + "norm_label": "custom_tags", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 2 + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html", + "label": "Customer ID Backup/New Factor Template", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "customer id backup/new factor template", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_all_products", + "label": "all_products (JS variable)", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "all_products (js variable)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "label": "buildOrderList (JS function)", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "buildorderlist (js function)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "label": "orderList (JS variable)", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "orderlist (js variable)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "api_endpoint_panel_customer_del", + "label": "/panel/customer/{id}/del API Endpoint", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "/panel/customer/{id}/del api endpoint" + }, + { + "id": "api_endpoint_panel_productmojodi", + "label": "/panel/productMojodi/ API Endpoint", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "/panel/productmojodi/ api endpoint" + }, + { + "id": "concept_permission", + "label": "Django Permissions", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "django permissions" + }, + { + "id": "django_template_filter_tojalali", + "label": "toJalali Template Filter", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "tojalali template filter" + }, + { + "id": "django_template_tag_custom_tags", + "label": "Django Custom Tags", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "django custom tags" + }, + { + "id": "django_url_admin_panel_customeredit", + "label": "admin_panel:customerEdit URL", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "admin_panel:customeredit url" + }, + { + "id": "django_url_admin_panel_customerfactors", + "label": "admin_panel:customerFactors URL", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "admin_panel:customerfactors url" + }, + { + "id": "django_url_admin_panel_newfactor", + "label": "admin_panel:newFactor URL", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "admin_panel:newfactor url" + }, + { + "id": "django_url_admin_panel_productsjson", + "label": "admin_panel:productsJson URL", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "admin_panel:productsjson url" + }, + { + "id": "js_library_pdatepicker", + "label": "pDatepicker JS Library", + "_origin": "semantic", + "community": 32, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "pdatepicker js library" + }, + { + "id": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "label": "customerIDFactorBackup.html", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "code", + "norm_label": "customeridfactorbackup.html", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "label": "Client-side script in customerIDFactorBackup.html", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "code", + "norm_label": "client-side script in customeridfactorbackup.html", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "django_contrib_staticfiles_templatetags_static", + "label": "django static tag library", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "code", + "norm_label": "django static tag library", + "source_file": null + }, + { + "id": "admin_panel_urls_customer", + "label": "URL: customer detail", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "concept", + "norm_label": "url: customer detail" + }, + { + "id": "admin_panel_urls_customeredit", + "label": "URL: admin_panel:customerEdit", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "concept", + "norm_label": "url: admin_panel:customeredit", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "concept_factor", + "label": "Factor Data Model", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "concept", + "norm_label": "factor data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "concept_product", + "label": "Product Data Model", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "concept", + "norm_label": "product data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "concept_productcategory", + "label": "Product Category Data Model", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "concept", + "norm_label": "product category data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "panel_urls_productmojodi", + "label": "URL: /panel/productMojodi/", + "_origin": "semantic", + "community": 4, + "community_name": "customerIDFactorBackup.html", + "file_type": "concept", + "norm_label": "url: /panel/productmojodi/", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "admin_panel_customer_action_inc", + "label": "Customer Action Include", + "_origin": "semantic", + "community": 50, + "community_name": "Customer Action Include", + "file_type": "code", + "norm_label": "customer action include", + "rationale": "Reusable component for displaying and filtering customer actions.", + "source_file": "admin_panel/templates/admin_panel/customerActionInc.html" + }, + { + "id": "admin_panel_customer_base_new", + "label": "New Customer Base Template", + "_origin": "semantic", + "community": 51, + "community_name": "New Customer Base Template", + "file_type": "code", + "norm_label": "new customer base template", + "rationale": "Base template for customer-specific views with dynamic phone management.", + "source_file": "admin_panel/templates/admin_panel/customerBaseNew.html" + }, + { + "id": "admin_panel_customer_customernazarinc", + "label": "Customer Feedback Partial", + "_origin": "semantic", + "community": 52, + "community_name": "Customer Feedback Partial", + "file_type": "code", + "norm_label": "customer feedback partial", + "rationale": "Reusable component for displaying and editing customer actions, results, and satisfaction grades.", + "source_file": "admin_panel/templates/admin_panel/customer/customerNazarInc.html" + }, + { + "id": "admin_panel_customer_factor", + "label": "Customer Factor Detail", + "_origin": "semantic", + "community": 53, + "community_name": "Customer Factor Detail", + "file_type": "code", + "norm_label": "customer factor detail", + "rationale": "Displays specific invoice details and handles cancellation logic.", + "source_file": "admin_panel/templates/admin_panel/customerFactor.html" + }, + { + "id": "admin_panel_customer_hesabdari", + "label": "Customer Accounting Template", + "_origin": "semantic", + "community": 54, + "community_name": "Customer Accounting Template", + "file_type": "code", + "norm_label": "customer accounting template", + "rationale": "Manages customer financial transactions and balance.", + "source_file": "admin_panel/templates/admin_panel/customerHesabDari.html" + }, + { + "id": "admin_panel_customer_id_factor", + "label": "Customer Factor List", + "_origin": "semantic", + "community": 55, + "community_name": "Customer Factor List", + "file_type": "code", + "norm_label": "customer factor list", + "rationale": "Lists and filters invoices for a specific customer.", + "source_file": "admin_panel/templates/admin_panel/customerIDFactor.html" + }, + { + "id": "admin_panel_customer_nazar", + "label": "Customer Feedback Page", + "_origin": "semantic", + "community": 56, + "community_name": "Customer Feedback Page", + "file_type": "code", + "norm_label": "customer feedback page", + "rationale": "Page wrapper for the customer feedback/action partial.", + "source_file": "admin_panel/templates/admin_panel/customer/nazar.html" + }, + { + "id": "admin_panel_templates_admin_panel_actionlist", + "label": "Action List Template", + "_origin": "semantic", + "community": 60, + "community_name": "Action List Template", + "file_type": "code", + "norm_label": "action list template", + "rationale": "Displays a list of tasks/actions for users.", + "source_file": "admin_panel/templates/admin_panel/ActionList.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerNew", + "label": "Customer New Factor", + "_origin": "semantic", + "community": 62, + "community_name": "Customer New Factor", + "file_type": "code", + "norm_label": "customer new factor", + "rationale": "Template for creating new customer factors/invoices with product selection and payment types.", + "source_file": "admin_panel/templates/admin_panel/customerNew.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerNew2", + "label": "Customer New Factor V2", + "_origin": "semantic", + "community": 63, + "community_name": "Customer New Factor V2", + "file_type": "code", + "norm_label": "customer new factor v2", + "rationale": "Updated version of factor creation including discount and previous balance fields.", + "source_file": "admin_panel/templates/admin_panel/customerNew2.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerRezayat", + "label": "Customer Satisfaction List", + "_origin": "semantic", + "community": 64, + "community_name": "Customer Satisfaction List", + "file_type": "code", + "norm_label": "customer satisfaction list", + "source_file": "admin_panel/templates/admin_panel/customerRezayat.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerRezayatinc", + "label": "Customer Satisfaction Partial", + "_origin": "semantic", + "community": 65, + "community_name": "Customer Satisfaction Partial", + "file_type": "code", + "norm_label": "customer satisfaction partial", + "rationale": "Reusable component for displaying and editing customer satisfaction/action results.", + "source_file": "admin_panel/templates/admin_panel/customerRezayatinc.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerSarresid", + "label": "Customer Check/Debt Management", + "_origin": "semantic", + "community": 66, + "community_name": "Customer Check/Debt Management", + "file_type": "code", + "norm_label": "customer check/debt management", + "rationale": "Comprehensive interface for managing checks, promissory notes, and Sayyad system inquiries.", + "source_file": "admin_panel/templates/admin_panel/customerSarresid.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerbasenew_html", + "label": "admin_panel/templates/admin_panel/customerBaseNew.html", + "_origin": "semantic", + "community": 67, + "community_name": "admin_panel/templates/admin_panel/customerBaseNew.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerbasenew.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_templates_admin_panel_customers", + "label": "Customer List", + "_origin": "semantic", + "community": 68, + "community_name": "Customer List", + "file_type": "code", + "norm_label": "customer list", + "source_file": "admin_panel/templates/admin_panel/customers.html" + }, + { + "id": "admin_panel_templates_admin_panel_entezarbk", + "label": "admin_panel/templates/admin_panel/entezarBK.html", + "_origin": "semantic", + "community": 69, + "community_name": "admin_panel/templates/admin_panel/entezarBK.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/entezarbk.html", + "rationale": "This appears to be a backup or static prototype version of a page, indicated by the 'BK' suffix and the lack of Django template inheritance.", + "source_file": "admin_panel/templates/admin_panel/entezarBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_base", + "label": "admin_panel/base.html", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/base.html", + "rationale": "Main layout and navigation for the admin panel.", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "admin_panel_templates_admin_panel_basehesabdari", + "label": "admin_panel/templates/admin_panel/baseHesabdari.html", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/basehesabdari.html", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "admin_panel_templates_admin_panel_basestore", + "label": "admin_panel/templates/admin_panel/baseStore.html", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/basestore.html", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerfactorbackup", + "label": "admin_panel/templates/admin_panel/customerFactorBackup.html", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerfactorbackup.html", + "rationale": "Filename suggests this is a backup version.", + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "id": "static_admin_panel_bulma_min_css", + "label": "admin_panel/bulma.min.css", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/bulma.min.css", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_datatables_datatables_min_js", + "label": "admin_panel/DataTables/datatables.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/datatables/datatables.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_kamadatepicker_min_js", + "label": "admin_panel/kamadatepicker.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/kamadatepicker.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_persian-datepicker_min_js", + "label": "admin_panel/persian-datepicker.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/persian-datepicker.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_style_css", + "label": "admin_panel/style.css", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/style.css", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_django_custom_tags", + "label": "Django Custom Tags: custom_tags", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "django custom tags: custom_tags", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_actionlistusertoday", + "label": "URL: admin_panel:ActionListUserToday", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:actionlistusertoday", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_bedehi", + "label": "URL: admin_panel:bedehi", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:bedehi", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_customers", + "label": "URL: admin_panel:customers", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:customers", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html", + "source_location": [ + 29, + 29 + ] + }, + { + "id": "concept_url_admin_panel_entezar", + "label": "URL: admin_panel:entezar", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:entezar", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_hesabdari", + "label": "URL: admin_panel:hesabdari", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:hesabdari", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_hesabdari_residnashone", + "label": "URL: admin_panel:hesabdari_residnashone", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:hesabdari_residnashone", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_index", + "label": "URL: admin_panel:index", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:index", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_operations", + "label": "URL: admin_panel:operations", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:operations", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_p_logout", + "label": "URL: admin_panel:p_logout", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:p_logout", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_productadd", + "label": "URL: admin_panel:productAdd", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:productadd", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_rezayat", + "label": "URL: admin_panel:rezayat", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:rezayat", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_store", + "label": "URL: admin_panel:store", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:store", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_store_transfers", + "label": "URL: admin_panel:store_transfers", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:store_transfers", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_stores", + "label": "URL: admin_panel:stores", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:stores", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_panel_customer_factor_del", + "label": "URL: /panel/customer/{id}/factor/{id}/del", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: /panel/customer/{id}/factor/{id}/del", + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_financial_dashboard", + "label": "Financial Dashboard", + "_origin": "semantic", + "community": 70, + "community_name": "Financial Dashboard", + "file_type": "code", + "norm_label": "financial dashboard", + "rationale": "High-level management view for auditing debts, sales trends, and inventory leaks.", + "source_file": "admin_panel/templates/admin_panel/financial_dashboard.html" + }, + { + "id": "admin_panel_templates_admin_panel_hesabdari", + "label": "Accounting Main View", + "_origin": "semantic", + "community": 71, + "community_name": "Accounting Main View", + "file_type": "code", + "norm_label": "accounting main view", + "source_file": "admin_panel/templates/admin_panel/hesabdari.html" + }, + { + "id": "admin_panel_templates_admin_panel_index", + "label": "admin_panel/templates/admin_panel/index.html", + "_origin": "semantic", + "community": 72, + "community_name": "admin_panel/templates/admin_panel/index.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/index.html", + "rationale": "This appears to be a static prototype version of a page, indicated by the lack of Django template tags and inheritance.", + "source_file": "admin_panel/templates/admin_panel/index.html" + }, + { + "id": "admin_panel_templates_admin_panel_newOperation", + "label": "New Inventory Operation", + "_origin": "semantic", + "community": 73, + "community_name": "New Inventory Operation", + "file_type": "code", + "norm_label": "new inventory operation", + "source_file": "admin_panel/templates/admin_panel/newOperation.html" + }, + { + "id": "admin_panel_templates_admin_panel_operations", + "label": "Inventory Operations List", + "_origin": "semantic", + "community": 74, + "community_name": "Inventory Operations List", + "file_type": "code", + "norm_label": "inventory operations list", + "source_file": "admin_panel/templates/admin_panel/operations.html" + }, + { + "id": "admin_panel_templates_admin_panel_operationsbk", + "label": "Operations Backup Template", + "_origin": "semantic", + "community": 75, + "community_name": "Operations Backup Template", + "file_type": "code", + "norm_label": "operations backup template", + "rationale": "Template for viewing store operation logs (in/out) and creating new stores.", + "source_file": "admin_panel/templates/admin_panel/operationsBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_report", + "label": "Financial Report Template", + "_origin": "semantic", + "community": 76, + "community_name": "Financial Report Template", + "file_type": "code", + "norm_label": "financial report template", + "rationale": "Generates financial reports with filters for payment type, user, and date range.", + "source_file": "admin_panel/templates/admin_panel/report.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_debtors_no_vosol", + "label": "Debt Collection Dashboard", + "_origin": "semantic", + "community": 77, + "community_name": "Debt Collection Dashboard", + "file_type": "code", + "norm_label": "debt collection dashboard", + "rationale": "Intelligent dashboard for tracking abandoned debt collections and overdue amounts.", + "source_file": "admin_panel/templates/admin_panel/report_debtors_no_vosol.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_inventory_movements", + "label": "Inventory Movement Report", + "_origin": "semantic", + "community": 78, + "community_name": "Inventory Movement Report", + "file_type": "code", + "norm_label": "inventory movement report", + "rationale": "Detailed report on stock ins/outs with movement type classification (Sale, Warranty, etc.).", + "source_file": "admin_panel/templates/admin_panel/report_inventory_movements.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_rezayat", + "label": "Customer Satisfaction Dashboard", + "_origin": "semantic", + "community": 79, + "community_name": "Customer Satisfaction Dashboard", + "file_type": "code", + "norm_label": "customer satisfaction dashboard", + "rationale": "Dashboard for monitoring customer feedback, average grades, and follow-up for unhappy customers.", + "source_file": "admin_panel/templates/admin_panel/report_rezayat.html" + }, + { + "id": "admin_panel_templates_admin_panel_reportchecknesiye", + "label": "Check and Credit Report Template", + "_origin": "semantic", + "community": 80, + "community_name": "Check and Credit Report Template", + "file_type": "code", + "norm_label": "check and credit report template", + "rationale": "Specialized report for tracking checks and credit (nesiye) maturity dates.", + "source_file": "admin_panel/templates/admin_panel/reportCheckNesiye.html" + }, + { + "id": "admin_panel_templates_admin_panel_rezayat", + "label": "Satisfaction List Template", + "_origin": "semantic", + "community": 81, + "community_name": "Satisfaction List Template", + "file_type": "code", + "norm_label": "satisfaction list template", + "rationale": "Legacy or list-view template for customer satisfaction records.", + "source_file": "admin_panel/templates/admin_panel/rezayat.html", + "verification": "unverified" + }, + { + "id": "admin_panel_templates_admin_panel_store", + "label": "Store Inventory Template", + "_origin": "semantic", + "community": 82, + "community_name": "Store Inventory Template", + "file_type": "code", + "norm_label": "store inventory template", + "rationale": "Main interface for viewing physical stock, reserved items, and editing product details.", + "source_file": "admin_panel/templates/admin_panel/store.html" + }, + { + "id": "admin_panel_templates_admin_panel_store_transfers", + "label": "Store Transfers Template", + "_origin": "semantic", + "community": 83, + "community_name": "Store Transfers Template", + "file_type": "code", + "norm_label": "store transfers template", + "rationale": "Manages inter-store inventory transfers, including approval, rejection, and cancellation flows.", + "source_file": "admin_panel/templates/admin_panel/store_transfers.html" + }, + { + "id": "admin_panel_templates_admin_panel_stores", + "label": "Stores List Template", + "_origin": "semantic", + "community": 84, + "community_name": "Stores List Template", + "file_type": "code", + "norm_label": "stores list template", + "rationale": "High-level list of all available warehouses/stores.", + "source_file": "admin_panel/templates/admin_panel/stores.html" + }, + { + "id": "admin_panel_urls_newstore", + "label": "URL: newStore", + "_origin": "semantic", + "community": 87, + "community_name": "URL: newStore", + "file_type": "concept", + "norm_label": "url: newstore" + }, + { + "id": "admin_panel_urls_processtransferaction", + "label": "URL: process_transfer_action", + "_origin": "semantic", + "community": 88, + "community_name": "URL: process_transfer_action", + "file_type": "concept", + "norm_label": "url: process_transfer_action" + }, + { + "id": "admin_panel_urls_rezayatedit", + "label": "URL: rezayatEdit", + "_origin": "semantic", + "community": 89, + "community_name": "URL: rezayatEdit", + "file_type": "concept", + "norm_label": "url: rezayatedit" + }, + { + "id": "requirements2_txt", + "label": "Extended Requirements File", + "_origin": "semantic", + "community": 91, + "community_name": "Extended Requirements File", + "file_type": "code", + "norm_label": "extended requirements file", + "source_file": "requirements2.txt" + }, + { + "id": "requirements_txt", + "label": "Requirements File", + "_origin": "semantic", + "community": 92, + "community_name": "Requirements File", + "file_type": "code", + "norm_label": "requirements file", + "source_file": "requirements.txt", + "verification": "unverified" + }, + { + "id": "django_core_exceptions", + "label": "django_core_exceptions", + "community": 0, + "community_name": "views/store.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_exceptions", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils_translation", + "label": "django_utils_translation", + "community": 0, + "community_name": "views/store.py", + "external": true, + "file_type": "concept", + "norm_label": "django_utils_translation", + "source_file": "", + "type": "external" + }, + { + "id": "django_views_decorators_http", + "label": "django_views_decorators_http", + "community": 0, + "community_name": "views/store.py", + "external": true, + "file_type": "concept", + "norm_label": "django_views_decorators_http", + "source_file": "", + "type": "external" + }, + { + "id": "csv", + "label": "csv", + "community": 1, + "community_name": "django_db_models", + "external": true, + "file_type": "concept", + "norm_label": "csv", + "source_file": "", + "type": "external" + }, + { + "id": "django", + "label": "django", + "community": 1, + "community_name": "django_db_models", + "external": true, + "file_type": "concept", + "norm_label": "django", + "source_file": "", + "type": "external" + }, + { + "id": "django_db_models", + "label": "django_db_models", + "community": 1, + "community_name": "django_db_models", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models", + "source_file": "", + "type": "external" + }, + { + "id": "django_db_models_functions", + "label": "django_db_models_functions", + "community": 1, + "community_name": "django_db_models", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models_functions", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_asgi", + "label": "django_core_asgi", + "community": 101, + "community_name": "os", + "external": true, + "file_type": "concept", + "norm_label": "django_core_asgi", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_wsgi", + "label": "django_core_wsgi", + "community": 101, + "community_name": "os", + "external": true, + "file_type": "concept", + "norm_label": "django_core_wsgi", + "source_file": "", + "type": "external" + }, + { + "id": "os", + "label": "os", + "community": 101, + "community_name": "os", + "external": true, + "file_type": "concept", + "norm_label": "os", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth", + "label": "django_contrib_auth", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth", + "source_file": "", + "type": "external" + }, + { + "id": "django_dispatch", + "label": "django_dispatch", + "community": 11, + "community_name": "refactor-2026-10-09/models.py", + "external": true, + "file_type": "concept", + "norm_label": "django_dispatch", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth_models", + "label": "django_contrib_auth_models", + "community": 13, + "community_name": "User", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth_models", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib", + "label": "django_contrib", + "community": 15, + "community_name": "django_contrib", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib", + "source_file": "", + "type": "external" + }, + { + "id": "django_test", + "label": "django_test", + "community": 16, + "community_name": "models/__init__.py", + "external": true, + "file_type": "concept", + "norm_label": "django_test", + "source_file": "", + "type": "external" + }, + { + "id": "django_urls", + "label": "django_urls", + "community": 16, + "community_name": "models/__init__.py", + "external": true, + "file_type": "concept", + "norm_label": "django_urls", + "source_file": "", + "type": "external" + }, + { + "id": "itertools", + "label": "itertools", + "community": 16, + "community_name": "models/__init__.py", + "external": true, + "file_type": "concept", + "norm_label": "itertools", + "source_file": "", + "type": "external" + }, + { + "id": "contextlib", + "label": "contextlib", + "community": 2, + "community_name": "gt_esh.py", + "external": true, + "file_type": "concept", + "norm_label": "contextlib", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_management_base", + "label": "django_core_management_base", + "community": 2, + "community_name": "gt_esh.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_management_base", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils", + "label": "django_utils", + "community": 2, + "community_name": "gt_esh.py", + "external": true, + "file_type": "concept", + "norm_label": "django_utils", + "source_file": "", + "type": "external" + }, + { + "id": "logging", + "label": "logging", + "community": 2, + "community_name": "gt_esh.py", + "external": true, + "file_type": "concept", + "norm_label": "logging", + "source_file": "", + "type": "external" + }, + { + "id": "requests", + "label": "requests", + "community": 2, + "community_name": "gt_esh.py", + "external": true, + "file_type": "concept", + "norm_label": "requests", + "source_file": "", + "type": "external" + }, + { + "id": "time", + "label": "time", + "community": 2, + "community_name": "gt_esh.py", + "external": true, + "file_type": "concept", + "norm_label": "time", + "source_file": "", + "type": "external" + }, + { + "id": "argparse", + "label": "argparse", + "community": 23, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "argparse", + "source_file": "", + "type": "external" + }, + { + "id": "dataclasses", + "label": "dataclasses", + "community": 23, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "dataclasses", + "source_file": "", + "type": "external" + }, + { + "id": "typing", + "label": "typing", + "community": 23, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "typing", + "source_file": "", + "type": "external" + }, + { + "id": "django_apps", + "label": "django_apps", + "community": 24, + "community_name": "django_apps", + "external": true, + "file_type": "concept", + "norm_label": "django_apps", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils_timezone", + "label": "django_utils_timezone", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "external": true, + "file_type": "concept", + "norm_label": "django_utils_timezone", + "source_file": "", + "type": "external" + }, + { + "id": "sys", + "label": "sys", + "community": 26, + "community_name": "manage.py", + "external": true, + "file_type": "concept", + "norm_label": "sys", + "source_file": "", + "type": "external" + }, + { + "id": "django_conf_urls_static", + "label": "django_conf_urls_static", + "community": 28, + "community_name": "khatibi/urls.py", + "external": true, + "file_type": "concept", + "norm_label": "django_conf_urls_static", + "source_file": "", + "type": "external" + }, + { + "id": "django_db", + "label": "django_db", + "community": 3, + "community_name": "django_db", + "external": true, + "file_type": "concept", + "norm_label": "django_db", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_validators", + "label": "django_core_validators", + "community": 30, + "community_name": "views/finance.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_validators", + "source_file": "", + "type": "external" + }, + { + "id": "asgiref_sync", + "label": "asgiref_sync", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "asgiref_sync", + "source_file": "", + "type": "external" + }, + { + "id": "asyncio", + "label": "asyncio", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "asyncio", + "source_file": "", + "type": "external" + }, + { + "id": "base64", + "label": "base64", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "base64", + "source_file": "", + "type": "external" + }, + { + "id": "cv2", + "label": "cv2", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "cv2", + "source_file": "", + "type": "external" + }, + { + "id": "ddddocr", + "label": "ddddocr", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "ddddocr", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth_decorators", + "label": "django_contrib_auth_decorators", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth_decorators", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_paginator", + "label": "django_core_paginator", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_paginator", + "source_file": "", + "type": "external" + }, + { + "id": "django_http", + "label": "django_http", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_http", + "source_file": "", + "type": "external" + }, + { + "id": "django_shortcuts", + "label": "django_shortcuts", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_shortcuts", + "source_file": "", + "type": "external" + }, + { + "id": "django_views_decorators_csrf", + "label": "django_views_decorators_csrf", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_views_decorators_csrf", + "source_file": "", + "type": "external" + }, + { + "id": "json", + "label": "json", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "json", + "source_file": "", + "type": "external" + }, + { + "id": "numpy", + "label": "numpy", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "numpy", + "source_file": "", + "type": "external" + }, + { + "id": "persiantools", + "label": "persiantools", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "persiantools", + "source_file": "", + "type": "external" + }, + { + "id": "persiantools_jdatetime", + "label": "persiantools_jdatetime", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "persiantools_jdatetime", + "source_file": "", + "type": "external" + }, + { + "id": "playwright_async_api", + "label": "playwright_async_api", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "playwright_async_api", + "source_file": "", + "type": "external" + }, + { + "id": "re", + "label": "re", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "re", + "source_file": "", + "type": "external" + }, + { + "id": "django_urls_base", + "label": "django_urls_base", + "community": 6, + "community_name": "refactor-2026-10-09/views.py", + "external": true, + "file_type": "concept", + "norm_label": "django_urls_base", + "source_file": "", + "type": "external" + }, + { + "id": "django_db_models_deletion", + "label": "django_db_models_deletion", + "community": 8, + "community_name": "django_db_models_deletion", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models_deletion", + "source_file": "", + "type": "external" + }, + { + "id": "django_conf", + "label": "django_conf", + "community": 9, + "community_name": "django_conf", + "external": true, + "file_type": "concept", + "norm_label": "django_conf", + "source_file": "", + "type": "external" + }, + { + "id": "boto3", + "label": "boto3", + "community": 93, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "boto3", + "source_file": "", + "type": "external" + }, + { + "id": "botocore_config", + "label": "botocore_config", + "community": 93, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "botocore_config", + "source_file": "", + "type": "external" + }, + { + "id": "botocore_exceptions", + "label": "botocore_exceptions", + "community": 93, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "botocore_exceptions", + "source_file": "", + "type": "external" + }, + { + "id": "fcntl", + "label": "fcntl", + "community": 93, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "fcntl", + "source_file": "", + "type": "external" + }, + { + "id": "pathlib", + "label": "pathlib", + "community": 93, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "pathlib", + "source_file": "", + "type": "external" + }, + { + "id": "shutil", + "label": "shutil", + "community": 93, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "shutil", + "source_file": "", + "type": "external" + }, + { + "id": "signal", + "label": "signal", + "community": 93, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "signal", + "source_file": "", + "type": "external" + }, + { + "id": "sqlite3", + "label": "sqlite3", + "community": 93, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "sqlite3", + "source_file": "", + "type": "external" + } + ], + "links": [ + { + "source": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_handle", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_handle", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_check_target_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_check_source_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "admin_panel_services_check_target_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "target": "admin_panel_views_helpers_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L258", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "target": "json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_parse_cheque_result_html", + "target": "re", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "asyncio", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "re", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "admin_panel_views_cheque_inquiry_parse_cheque_result_html", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "base64", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "numpy", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "cv2", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "ddddocr", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "re", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerfactors", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/customers.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L172", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L179", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_helpers_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_inventory_movements_report", + "target": "admin_panel_views_helpers_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rezayat_dashboard", + "target": "json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L950", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operation", + "target": "admin_panel_views_helpers_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L323", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operation", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L347", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L218", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_services_reject_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L226", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L230", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_approve_transfer_request", + "target": "backups_refactor_2026_10_09_services_check_target_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_approve_transfer_request", + "target": "backups_refactor_2026_10_09_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_create_transfer_request", + "target": "backups_refactor_2026_10_09_services_check_source_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_create_transfer_request", + "target": "backups_refactor_2026_10_09_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_reject_transfer_request", + "target": "backups_refactor_2026_10_09_services_check_target_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_addsarresid", + "target": "backups_refactor_2026_10_09_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2540", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_addsarresid", + "target": "backups_refactor_2026_10_09_models_sarresid", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2554", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_api_check_sabt_inquiry", + "target": "backups_refactor_2026_10_09_views_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2881", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerfactors", + "target": "backups_refactor_2026_10_09_views_parse_jalali_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L896", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerhesabdariadd", + "target": "backups_refactor_2026_10_09_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2082", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customersadd", + "target": "backups_refactor_2026_10_09_models_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1009", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_inventory_movements_report", + "target": "backups_refactor_2026_10_09_views_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L339", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor", + "target": "backups_refactor_2026_10_09_models_factor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1586", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor", + "target": "backups_refactor_2026_10_09_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1610", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor", + "target": "backups_refactor_2026_10_09_models_factoriteam", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1644", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_views_parse_jalali_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1704", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_views_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1713", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_views_parse_timestamp", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1775", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_models_factoriteam", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1797", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_views_inventoryexception", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1809", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_operation", + "target": "backups_refactor_2026_10_09_views_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1434", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_operation", + "target": "backups_refactor_2026_10_09_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1458", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_pardakhtnesiye", + "target": "backups_refactor_2026_10_09_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2622", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_passcheck", + "target": "backups_refactor_2026_10_09_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2418", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_process_transfer_action", + "target": "backups_refactor_2026_10_09_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1334", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_process_transfer_action", + "target": "backups_refactor_2026_10_09_services_reject_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1342", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_process_transfer_action", + "target": "backups_refactor_2026_10_09_services_cancel_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1346", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_run_cbi_sayad_inquiry_logic", + "target": "backups_refactor_2026_10_09_views_solve_base64_captcha", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2738", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_run_cbi_sayad_inquiry_logic", + "target": "backups_refactor_2026_10_09_views_parse_cheque_result_html", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2794", + "weight": 1.0 + }, + { + "source": "project_tree_generate_snapshot", + "target": "project_tree_counts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L197", + "weight": 1.0 + }, + { + "source": "project_tree_generate_snapshot", + "target": "project_tree_format_header", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L199", + "weight": 1.0 + }, + { + "source": "project_tree_generate_snapshot", + "target": "project_tree_write_tree", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L205", + "weight": 1.0 + }, + { + "source": "project_tree_main", + "target": "project_tree_parse_args", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "project_tree_main", + "target": "os", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L252", + "weight": 1.0 + }, + { + "source": "project_tree_main", + "target": "project_tree_generate_snapshot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L253", + "weight": 1.0 + }, + { + "source": "project_tree_non_negative_integer", + "target": "argparse", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L218", + "weight": 1.0 + }, + { + "source": "project_tree_normalized_path", + "target": "os", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "project_tree_parse_args", + "target": "argparse", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L225", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "os", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "project_tree_warn", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "project_tree_is_excluded_file", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "project_tree_normalized_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "os", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree_visit", + "target": "project_tree_sorted_entries", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree_visit", + "target": "project_tree_normalized_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L156", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree_visit", + "target": "project_tree_write_tree_visit", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L168", + "weight": 1.0 + }, + { + "source": "reconciliation_tool_run_audit", + "target": "csv", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "reconciliation_tool.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "tests_factories_make_category", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "tests_factories_make_customer", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "tests_factories_make_product", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "tests_factories_make_product", + "target": "tests_factories_make_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "tests_factories_make_store", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "tests_factories_make_user", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests_setup", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests_test_edit_customer_replaces_phones", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests_setup", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests_test_customer_with_financial_history_is_never_deleted", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests_test_customer_without_history_is_deactivated", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests_setup", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests_test_instore_transaction_protects_its_factor", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests_test_instore_transaction_protects_its_factor", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_test_new_factor2_creates_factor_article_and_stock_out", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_oversell_without_creating_factor", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_setup", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_setup", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_deleting_a_row_creates_history_and_reduces_stock", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_deleting_a_row_creates_history_and_reduces_stock", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_editing_a_row_updates_stock_and_history", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_editing_a_row_updates_stock_and_history", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_initial_in_records_history_and_stock", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_initial_in_records_history_and_stock", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "target": "admin_panel_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_setup", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_setup", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_setup", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_setup", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L195", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L199", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L153", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_cancel_by_requester", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L179", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_cancel_by_requester", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L183", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_rejects_insufficient_stock", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_rejects_non_positive_quantity", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_rejects_same_store", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L130", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_transfer_request_pending", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_transfer_request_pending", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_double_approval_is_rejected", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_double_approval_is_rejected", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_permission_denied_for_outsider", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_permission_denied_for_outsider", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L189", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "target": "admin_panel_services_reject_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests_test_url_name_snapshot_unchanged", + "target": "tests_test_urls_contract_urlcontracttests_all_names", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_urls_contract.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_endpoints", + "target": "tests_test_view_smoke_viewsmoketests_now_ms", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_test_every_endpoint_responds_without_server_error", + "target": "tests_test_view_smoke_viewsmoketests_endpoints", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L209", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_test_every_endpoint_responds_without_server_error", + "target": "tests_test_view_smoke_viewsmoketests_url", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L210", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "project_tree_write_tree_visit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L150", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storeroomadmin", + "target": "admin_panel_admin_py_register", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/admin.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storetransferrequestadmin", + "target": "admin_panel_admin_py_register", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/admin.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_py_atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "admin_panel_services_py_atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_py_atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "admin_panel_services_py_atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p_remove_query_param", + "target": "filter", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlist", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlistall", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlisttoday", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlistuser", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlistusertoday", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customeraction", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customereditaction", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customernazar", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customernewaction", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_rezayat", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L200", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_rezayatedit", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L232", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "target": "admin_panel_views_cheque_inquiry_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L249", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "target": "admin_panel_views_cheque_inquiry_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "target": "admin_panel_views_cheque_inquiry_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L226", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "target": "admin_panel_views_cheque_inquiry_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L227", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customer", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerdel", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L365", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerdel", + "target": "admin_panel_views_customers_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L366", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customeredit", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L261", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerfactor", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L184", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerfactors", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerhesabdari", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L414", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerhesabdariadd", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L441", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customernew", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customernew2", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customers", + "target": "admin_panel_views_customers_py_csrf_exempt", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customers", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customersadd", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L219", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerssearch", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_entezar", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L304", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_sarresidh", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_factordel", + "target": "admin_panel_views_factors_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L365", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_factordel", + "target": "admin_panel_views_factors_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L366", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_factordel", + "target": "admin_panel_views_factors_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L367", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_views_factors_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_factors_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_addsarresid", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L770", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_addsarresid", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L771", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehi", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L516", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehi", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L517", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehikhadamat", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L657", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehikhadamat", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L658", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehinasb", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L674", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehinasb", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L675", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_financial_dashboard", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L316", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_financial_dashboard", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L317", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L536", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L537", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_checkpass", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L592", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_checkpass", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L593", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_checkpassfail", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L612", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_checkpassfail", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L613", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_residnashone", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L636", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_residnashone", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L637", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_inventory_movements_report", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L233", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_inventory_movements_report", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_pardakhtnesiye", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L862", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_pardakhtnesiye", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L863", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_passcheck", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L690", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_passcheck", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L691", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_report", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_report", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_report_debtors_no_vosol", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_report_debtors_no_vosol", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rezayat_dashboard", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L925", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rezayat_dashboard", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L926", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_update_check_info", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L720", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_update_check_info", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L721", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_update_check_info", + "target": "admin_panel_views_finance_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L722", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newoperation", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newoperation", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newstore", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L249", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newstore", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operation", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L313", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operation", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L314", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operationproduct", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operationproduct", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operations", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operations", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L200", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_views_store_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productadd", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L260", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productadd", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L261", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productdel", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L306", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productdel", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L307", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productedit", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L287", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productedit", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L288", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productmojodi", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L434", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_store", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_store", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_store_transfers", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_store_transfers", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_stores", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_stores", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin_storeroomadmin", + "target": "backups_refactor_2026_10_09_admin_py_register", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin_storetransferrequestadmin", + "target": "backups_refactor_2026_10_09_admin_py_register", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_approve_transfer_request", + "target": "backups_refactor_2026_10_09_services_py_atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_cancel_transfer_request", + "target": "backups_refactor_2026_10_09_services_py_atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_create_transfer_request", + "target": "backups_refactor_2026_10_09_services_py_atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_reject_transfer_request", + "target": "backups_refactor_2026_10_09_services_py_atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlist", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2183", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistall", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2240", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlisttoday", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2247", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistuser", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2190", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistusertoday", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2259", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_addsarresid", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2488", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_addsarresid", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2489", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_api_check_sabt_inquiry", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2872", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_api_check_sabt_inquiry", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2873", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_api_check_status_inquiry", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2849", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_api_check_status_inquiry", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2850", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_bedehi", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L591", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_bedehi", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L592", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_bedehikhadamat", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L729", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_bedehikhadamat", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L730", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_bedehinasb", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L745", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_bedehinasb", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L746", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customer", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L815", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customeraction", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2098", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerdel", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1997", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerdel", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1998", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customeredit", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1028", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customereditaction", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2197", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerfactor", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L926", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerfactors", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L861", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerhesabdari", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2046", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerhesabdariadd", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2073", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customernazar", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2134", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customernew", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L826", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customernew2", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L838", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customernewaction", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2142", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customers", + "target": "backups_refactor_2026_10_09_views_py_csrf_exempt", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L760", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customers", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L761", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customersadd", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L986", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_customerssearch", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L791", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_entezar", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1071", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_factordel", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1889", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_factordel", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1890", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_factordel", + "target": "backups_refactor_2026_10_09_views_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1891", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_financial_dashboard", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L392", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_financial_dashboard", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L393", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_hesabdari", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L610", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_hesabdari", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L611", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_hesabdari_checkpass", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L665", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_hesabdari_checkpass", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L666", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_hesabdari_checkpassfail", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L685", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_hesabdari_checkpassfail", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L686", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_hesabdari_residnashone", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L708", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_hesabdari_residnashone", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L709", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_inventory_movements_report", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L310", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_inventory_movements_report", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L311", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1544", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1689", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newoperation", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1268", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newoperation", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1269", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newstore", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1364", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_newstore", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1365", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_operation", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1424", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_operation", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1425", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_operationproduct", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1249", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_operationproduct", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1250", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_operations", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1220", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_operations", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1221", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_pardakhtnesiye", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2579", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_pardakhtnesiye", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2580", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_passcheck", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2409", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_passcheck", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2410", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_process_transfer_action", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1316", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_process_transfer_action", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1317", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_process_transfer_action", + "target": "backups_refactor_2026_10_09_views_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1318", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_productadd", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1374", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_productadd", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1375", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_productdel", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1418", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_productdel", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1419", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_productedit", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1400", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_productedit", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1401", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_productmojodi", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L960", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_report", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_report", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_report_debtors_no_vosol", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L200", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_report_debtors_no_vosol", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rezayat", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2292", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rezayat_dashboard", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2358", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rezayat_dashboard", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2359", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rezayatedit", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2324", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_sarresidh", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2062", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_store", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1147", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_store", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1148", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_store_transfers", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1278", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_store_transfers", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1279", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_stores", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1131", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_stores", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1132", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_update_check_info", + "target": "backups_refactor_2026_10_09_views_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2439", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_update_check_info", + "target": "backups_refactor_2026_10_09_views_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2440", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_update_check_info", + "target": "backups_refactor_2026_10_09_views_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2441", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers", + "relation": "re_exports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "export", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "direntry", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "project_tree.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "time", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "contextlib", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "requests", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "sqlite3", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "shutil", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "fcntl", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "signal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "boto3", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "django_core_validators", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "admin_panel_models_store_productstockhistory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/products.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "asyncio", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "base64", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "re", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "cv2", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "ddddocr", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "numpy", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services_approve_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services_create_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services_reject_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_context_processor", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/context_processor.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_context_processor", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/context_processor.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "cv2", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "numpy", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "ddddocr", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "re", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "base64", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1993", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2286", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2290", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_services_approve_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_services_cancel_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_services_create_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_services_reject_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "asyncio", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "csv", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "khatibi_asgi", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/asgi.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "admin_panel_init", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/wsgi.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "manage", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "manage.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "manage", + "target": "sys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "manage.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "sys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "argparse", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "csv", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "itertools", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/factories.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_factories_make_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_factories_make_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_current_stock", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_make_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_make_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_make_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_make_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_stock_in", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_current_stock", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_make_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_make_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_make_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_stock_in", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_approve_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_create_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_get_product_current_stock", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_reject_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract", + "target": "admin_panel_models_init", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models_contract.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_stock_in", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_admin", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/admin.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_apps", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/apps.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/models.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/admin.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/admin.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_apps", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/apps.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "botocore_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "botocore_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "datetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0004_factor_paytype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0005_auto_20220121_2054", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0006_auto_20220121_2100", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0009_remove_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0010_auto_20220122_1546", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0013_alter_factor_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0014_auto_20220123_1348", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0017_factoriteam_garantyesh", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0020_auto_20220126_1532", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0021_alter_article_type", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0022_article_typepy", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0023_alter_article_typepy", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0025_action_actiontype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0027_alter_action_nazar", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0028_action_grade", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0029_alter_article_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0030_auto_20220414_1047", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0032_article_paystatus", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0033_article_nahvepardakht", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0034_alter_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0035_alter_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0037_sarresid_sarresiddt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0040_customer_laghv_bazdid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0041_auto_20240216_1607", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0044_sarresid_desc", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0048_alter_productinstore_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0049_alter_productinstore_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0055_action_nextnazardt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_models_actions", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/actions.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_actions", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/actions.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/customers.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/factors.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/factors.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/finance.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/finance.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "django_core_validators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/finance.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_users", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_customers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_products", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_store", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_factors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_finance", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_actions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_system", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/products.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/products.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/store.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/store.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/store.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_models_system", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/system.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_users", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/users.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_users", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/users.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "typing", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_utils_translation", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "django", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p", + "target": "django", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_tests", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/tests.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_conf_urls_static", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "admin_panel_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_auth", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/auth.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_auth", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/auth.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "asgiref_sync", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "playwright_async_api", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_core_paginator", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_views_decorators_csrf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "persiantools", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_views_decorators_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_core_paginator", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_views_decorators_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "persiantools", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_customers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_factors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_store", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_finance", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_actions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_cheque_inquiry", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_core_paginator", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_views_decorators_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_tests", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/tests.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "admin_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/views.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/views.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin", + "target": "backups_refactor_2026_10_09_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_apps", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/apps.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_context_processor", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/context_processor.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_context_processor", + "target": "backups_refactor_2026_10_09_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/context_processor.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "django_dispatch", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "django_core_validators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "typing", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "django_utils_translation", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_urls", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/urls.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_urls", + "target": "django_conf_urls_static", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1142", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "playwright_async_api", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_core_paginator", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1991", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_urls_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_views_decorators_csrf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_views_decorators_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2287", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2288", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2289", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2290", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_services", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "persiantools", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "asgiref_sync", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "khatibi_asgi", + "target": "django_core_asgi", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/asgi.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "khatibi_production_settings", + "target": "khatibi_settings", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/production_settings.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_production_settings", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/production_settings.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "khatibi_settings", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/settings.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_conf_urls_static", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi", + "target": "django_core_wsgi", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/wsgi.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "dataclasses", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "datetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "typing", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/factories.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/factories.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_factories", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models_contract.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models_contract.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_urls_contract.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_urls_contract.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "admin_panel_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_source_store_permission", + "target": "admin_panel_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_source_store_permission", + "target": "admin_panel_services_py_storeroom", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_target_store_permission", + "target": "admin_panel_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_target_store_permission", + "target": "admin_panel_services_py_storeroom", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_py_product", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_py_storeroom", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_get_product_current_stock", + "target": "admin_panel_services_py_product", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_panel_services_get_product_current_stock", + "target": "admin_panel_services_py_storeroom", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "admin_panel_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_approve_transfer_request", + "target": "backups_refactor_2026_10_09_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_cancel_transfer_request", + "target": "backups_refactor_2026_10_09_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_check_source_store_permission", + "target": "backups_refactor_2026_10_09_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_check_target_store_permission", + "target": "backups_refactor_2026_10_09_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_create_transfer_request", + "target": "backups_refactor_2026_10_09_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_reject_transfer_request", + "target": "backups_refactor_2026_10_09_services_py_abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "project_tree_format_header", + "target": "datetime", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "project_tree_format_header", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "project_tree_format_header", + "target": "project_tree_counts", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "project_tree_generate_snapshot", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L191", + "weight": 1.0 + }, + { + "source": "project_tree_normalized_path", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "project_tree_counts", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "textio", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_py_storetransferrequest", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "admin_panel_services_py_storetransferrequest", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_py_storetransferrequest", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "admin_panel_services_py_storetransferrequest", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "project_tree_parse_args", + "target": "namespace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "project_tree.py", + "source_location": "L224", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "admin_panel_views_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "admin_panel/urls.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "admin_views", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "admin/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_urls", + "target": "backups_refactor_2026_10_09_views", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "backups/refactor-2026-10-09/urls.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract", + "target": "admin_panel_views_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "tests/test_urls_contract.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "admin_apps", + "target": "admin_apps_adminconfig", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_phonenumber", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_storeroom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_productcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_productinstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_factor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_factoriteam", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_visitqueue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storetransferrequestadmin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storeroomownerinline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storeroomadmin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "admin_panel_apps", + "target": "admin_panel_apps_adminpanelconfig", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "admin_panel_context_processor_dashboxdata", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/context_processor.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "admin_panel_management_commands_gt_esh_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_management_commands_send_daily_report_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "admin_panel_management_commands_sqlite_db_backup_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "admin_panel_migrations_0001_initial_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "admin_panel_migrations_0002_auto_20220114_1616_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "admin_panel_migrations_0003_auto_20220115_1401_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0004_factor_paytype", + "target": "admin_panel_migrations_0004_factor_paytype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0005_auto_20220121_2054", + "target": "admin_panel_migrations_0005_auto_20220121_2054_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0006_auto_20220121_2100", + "target": "admin_panel_migrations_0006_auto_20220121_2100_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "admin_panel_migrations_0007_productinstore_factor_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "admin_panel_migrations_0008_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0009_remove_storeroom_user", + "target": "admin_panel_migrations_0009_remove_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0010_auto_20220122_1546", + "target": "admin_panel_migrations_0010_auto_20220122_1546_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "admin_panel_migrations_0011_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "admin_panel_migrations_0012_visitqueue_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0013_alter_factor_options", + "target": "admin_panel_migrations_0013_alter_factor_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0014_auto_20220123_1348", + "target": "admin_panel_migrations_0014_auto_20220123_1348_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "admin_panel_migrations_0015_auto_20220124_0858_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "admin_panel_migrations_0016_factor_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0017_factoriteam_garantyesh", + "target": "admin_panel_migrations_0017_factoriteam_garantyesh_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "admin_panel_migrations_0018_alter_factoriteam_product_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "admin_panel_migrations_0019_article_articletype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0020_auto_20220126_1532", + "target": "admin_panel_migrations_0020_auto_20220126_1532_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0021_alter_article_type", + "target": "admin_panel_migrations_0021_alter_article_type_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0022_article_typepy", + "target": "admin_panel_migrations_0022_article_typepy_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0023_alter_article_typepy", + "target": "admin_panel_migrations_0023_alter_article_typepy_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "admin_panel_migrations_0024_action_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0025_action_actiontype", + "target": "admin_panel_migrations_0025_action_actiontype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "admin_panel_migrations_0026_auto_20220209_1924_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0027_alter_action_nazar", + "target": "admin_panel_migrations_0027_alter_action_nazar_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0028_action_grade", + "target": "admin_panel_migrations_0028_action_grade_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0029_alter_article_options", + "target": "admin_panel_migrations_0029_alter_article_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0030_auto_20220414_1047", + "target": "admin_panel_migrations_0030_auto_20220414_1047_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "admin_panel_migrations_0031_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0032_article_paystatus", + "target": "admin_panel_migrations_0032_article_paystatus_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0033_article_nahvepardakht", + "target": "admin_panel_migrations_0033_article_nahvepardakht_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0034_alter_article_sarresid", + "target": "admin_panel_migrations_0034_alter_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0035_alter_article_sarresid", + "target": "admin_panel_migrations_0035_alter_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "admin_panel_migrations_0036_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0037_sarresid_sarresiddt", + "target": "admin_panel_migrations_0037_sarresid_sarresiddt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "admin_panel_migrations_0038_auto_20240213_1735_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "target": "admin_panel_migrations_0039_customer_last_bazdid_dt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0040_customer_laghv_bazdid", + "target": "admin_panel_migrations_0040_customer_laghv_bazdid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0041_auto_20240216_1607", + "target": "admin_panel_migrations_0041_auto_20240216_1607_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "admin_panel_migrations_0042_article_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "admin_panel_migrations_0043_sarresid_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0044_sarresid_desc", + "target": "admin_panel_migrations_0044_sarresid_desc_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "admin_panel_migrations_0045_auto_20260610_1421_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "admin_panel_migrations_0046_auto_20260624_1818_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "target": "admin_panel_migrations_0047_alter_productinstore_movement_type_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0048_alter_productinstore_options", + "target": "admin_panel_migrations_0048_alter_productinstore_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0049_alter_productinstore_options", + "target": "admin_panel_migrations_0049_alter_productinstore_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "admin_panel_migrations_0050_storetransferrequest_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "admin_panel_migrations_0051_auto_20260705_1356_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "admin_panel_migrations_0052_storeroomowner_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "admin_panel_migrations_0053_storeroom_owners_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "admin_panel_migrations_0054_auto_20260715_2250_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0055_action_nextnazardt", + "target": "admin_panel_migrations_0055_action_nextnazardt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "admin_panel_migrations_0056_auto_20260731_1824_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_models_actions", + "target": "admin_panel_models_actions_action", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/actions.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_models_actions", + "target": "admin_panel_models_actions_visitqueue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/actions.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers", + "target": "admin_panel_models_customers_phonenumber", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers", + "target": "admin_panel_models_customers_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers_customer", + "target": "admin_panel_models_customers_customer_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors", + "target": "admin_panel_models_factors_factor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/factors.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors", + "target": "admin_panel_models_factors_factoriteam", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/factors.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors_factor", + "target": "admin_panel_models_factors_factor_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/factors.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "admin_panel_models_finance_article", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/finance.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "admin_panel_models_finance_sarresid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/finance.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "admin_panel_models_finance_articletype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/finance.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance_article", + "target": "admin_panel_models_finance_article_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/finance.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "admin_panel_models_products_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "admin_panel_models_products_productinstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "admin_panel_models_products_productcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_product", + "target": "admin_panel_models_products_product_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_movementtype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "admin_panel_models_store_storeroomowner", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "admin_panel_models_store_productstockhistory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "admin_panel_models_store_storeroom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "admin_panel_models_store_storetransferrequest", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_productstockhistory", + "target": "admin_panel_models_store_productstockhistory_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storeroom", + "target": "admin_panel_models_store_storeroom_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_panel_models_store_storetransferrequest_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_panel_models_store_storetransferrequest_status", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "admin_panel_models_system", + "target": "admin_panel_models_system_cachetable", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/system.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_models_users", + "target": "admin_panel_models_users_userprofile", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/users.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_reject_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_check_target_store_permission", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_check_source_store_permission", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_get_product_current_stock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_create_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_approve_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "admin_panel_templatetags_custom_tags_has_group", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "admin_panel_templatetags_custom_tags_tojalali", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p", + "target": "admin_panel_templatetags_remove_q_p_remove_query_param", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlistuser", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_customereditaction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_customeraction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlistall", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlisttoday", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlistusertoday", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_rezayat", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_rezayatedit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L233", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_customernazar", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_customernewaction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlist", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_views_auth", + "target": "admin_panel_views_auth_p_logout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/auth.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "admin_panel_views_auth", + "target": "admin_panel_views_auth_p_login", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/auth.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_run_bpi_cheque_inquiry_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L228", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L251", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_parse_cheque_result_html", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerfactors", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerfactor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_productsjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L197", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_actionjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L204", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L211", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customersadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customeredit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_entezar", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L305", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerdel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L367", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerhesabdari", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L415", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_sarresidh", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L431", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerhesabdariadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L442", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerssearch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customernew", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customernew2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_factors_newfactor2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/factors.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_factors_newfactor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/factors.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_factors_factordel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/factors.py", + "source_location": "L368", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_report_debtors_no_vosol", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_inventory_movements_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L235", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_financial_dashboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_bedehi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L518", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_hesabdari", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L538", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_hesabdari_checkpass", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L594", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_hesabdari_checkpassfail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L614", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_hesabdari_residnashone", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L638", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_bedehikhadamat", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L659", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_bedehinasb", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L676", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_passcheck", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L692", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_update_check_info", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L723", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_addsarresid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L772", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_pardakhtnesiye", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L864", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_rezayat_dashboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L927", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "admin_panel_views_helpers_safe_int", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_operations", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_operationproduct", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_newoperation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L153", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_store_transfers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_stores", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_process_transfer_action", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L203", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_newstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L251", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_productadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_productedit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L289", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_store", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_productdel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L308", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L315", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_productmojodi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L435", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "admin_views_index", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/views.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "agents", + "target": "agents_project_operating_agent_guidelines", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_1_codebase_navigation_analysis_ripwire_vs_graphify", + "target": "agents_routing_gate_pipeline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_1_codebase_navigation_analysis_ripwire_vs_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_2_dynamic_help_self_correction_staleness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_3_git_operations_safety", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_4_development_server_lifecycle", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_5_environment_frontend_pwa_safety", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_6_end_to_end_browser_tests_playwright", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin", + "target": "backups_refactor_2026_10_09_admin_storetransferrequestadmin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin", + "target": "backups_refactor_2026_10_09_admin_storeroomownerinline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin", + "target": "backups_refactor_2026_10_09_admin_storeroomadmin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_apps", + "target": "backups_refactor_2026_10_09_apps_adminpanelconfig", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_context_processor", + "target": "backups_refactor_2026_10_09_context_processor_dashboxdata", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/context_processor.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_factor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L135", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_userprofile", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L181", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_productstockhistory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L300", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L315", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_factoriteam", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L400", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_visitqueue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L409", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_articletype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L428", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_article", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L432", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L453", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_sarresid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L470", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_cachetable", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L510", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_phonenumber", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models", + "target": "backups_refactor_2026_10_09_models_storeroomowner", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_article", + "target": "backups_refactor_2026_10_09_models_article_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L433", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_customer", + "target": "backups_refactor_2026_10_09_models_customer_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_factor", + "target": "backups_refactor_2026_10_09_models_factor_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_product", + "target": "backups_refactor_2026_10_09_models_product_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_productinstore", + "target": "backups_refactor_2026_10_09_models_productinstore_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L182", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_productinstore", + "target": "backups_refactor_2026_10_09_models_productinstore_movementtype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_productstockhistory", + "target": "backups_refactor_2026_10_09_models_productstockhistory_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L308", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_storeroom", + "target": "backups_refactor_2026_10_09_models_storeroom_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_storetransferrequest", + "target": "backups_refactor_2026_10_09_models_storetransferrequest_status", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L316", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_storetransferrequest", + "target": "backups_refactor_2026_10_09_models_storetransferrequest_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L387", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_services_reject_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_services_cancel_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_services_check_target_store_permission", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_services_check_source_store_permission", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_services_get_product_current_stock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_services_create_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services", + "target": "backups_refactor_2026_10_09_services_approve_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customeredit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1029", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_entezar", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1072", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_stores", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1133", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_store", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1149", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_operations", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1222", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_operationproduct", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1251", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_newoperation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1270", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_store_transfers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1280", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_process_transfer_action", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1319", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_newstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1366", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_productadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1376", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_productedit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1402", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_productdel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1420", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1426", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_newfactor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1545", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_newfactor2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1690", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_factordel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1892", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customerdel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1999", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_report_debtors_no_vosol", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customerhesabdari", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2047", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_sarresidh", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2063", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customerhesabdariadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2074", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customeraction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2099", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customernazar", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2135", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customernewaction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2143", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_actionlist", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2184", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_actionlistuser", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2191", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customereditaction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2198", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_actionlistall", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2241", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_actionlisttoday", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2248", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_actionlistusertoday", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2260", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_rezayat", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2293", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_rezayatedit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2325", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_rezayat_dashboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2360", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_passcheck", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2411", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_update_check_info", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2442", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_addsarresid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2490", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_pardakhtnesiye", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2581", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_solve_base64_captcha", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2645", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_parse_cheque_result_html", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2690", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_run_cbi_sayad_inquiry_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2710", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_run_bpi_cheque_inquiry_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2808", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_api_check_status_inquiry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2851", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_api_check_sabt_inquiry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2874", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_inventory_movements_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L312", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_inventoryexception", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_financial_dashboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L394", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_safe_int", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_parse_jalali_date", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_bedehi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L593", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_hesabdari", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L612", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_parse_timestamp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_hesabdari_checkpass", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L667", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_hesabdari_checkpassfail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L687", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_hesabdari_residnashone", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L710", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_bedehikhadamat", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L731", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_p_login", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_bedehinasb", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L747", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L762", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customerssearch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L792", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L816", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customernew", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L827", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customernew2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L839", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customerfactors", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L862", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customerfactor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L927", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_productsjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L939", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_actionjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L946", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_p_logout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customerjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L953", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_productmojodi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L961", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views", + "target": "backups_refactor_2026_10_09_views_customersadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L987", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "check_finance_check_financial_discrepancy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "check_finance.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "entrypoint", + "target": "entrypoint_sh__entry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "entrypoint.sh", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "gemini", + "target": "gemini_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "GEMINI.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "ghost_hunter_run_360_audit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ghost_hunter.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "github_copilot_instructions", + "target": "github_copilot_instructions_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "manage", + "target": "manage_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_is_excluded_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_sorted_entries", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_write_tree", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_format_header", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_generate_snapshot", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L191", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_non_negative_integer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L214", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_parse_args", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L224", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L241", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_counts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_warn", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_normalized_path", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "reconciliation_tool_run_audit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "reconciliation_tool.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "ripwire_readme", + "target": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "ripwire_readme_3_installation", + "target": "ripwire_readme_3_1_install_a_prebuilt_binary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2460", + "weight": 1.0 + }, + { + "source": "ripwire_readme_3_installation", + "target": "ripwire_readme_3_2_build_from_source", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2488", + "weight": 1.0 + }, + { + "source": "ripwire_readme_3_installation", + "target": "ripwire_readme_3_3_install_the_agent_skills", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2546", + "weight": 1.0 + }, + { + "source": "ripwire_readme_3_installation", + "target": "ripwire_readme_3_4_register_the_mcp_server_optional", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2566", + "weight": 1.0 + }, + { + "source": "ripwire_readme_4_first_use", + "target": "ripwire_readme_4_1_make_the_first_map", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2604", + "weight": 1.0 + }, + { + "source": "ripwire_readme_4_first_use", + "target": "ripwire_readme_4_2_use_the_common_commands", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2621", + "weight": 1.0 + }, + { + "source": "ripwire_readme_6_output_format", + "target": "ripwire_readme_6_1_output_example", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2684", + "weight": 1.0 + }, + { + "source": "ripwire_readme_6_output_format", + "target": "ripwire_readme_6_2_exit_codes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2707", + "weight": 1.0 + }, + { + "source": "ripwire_readme_6_output_format", + "target": "ripwire_readme_6_3_json_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2720", + "weight": 1.0 + }, + { + "source": "ripwire_readme_improve_it_with_your_agent", + "target": "ripwire_readme_if_it_works_on_your_codebase_tell_us_what_it_got_wrong", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2254", + "weight": 1.0 + }, + { + "source": "ripwire_readme_measured", + "target": "ripwire_readme_against_other_tools", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1617", + "weight": 1.0 + }, + { + "source": "ripwire_readme_measured", + "target": "ripwire_readme_what_it_saves_you_in_tokens", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1767", + "weight": 1.0 + }, + { + "source": "ripwire_readme_measured", + "target": "ripwire_readme_where_its_own_cycles_go_hardware_counters_per_scope", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1813", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_1_purpose_and_function", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2347", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_2_system_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2433", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_3_installation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2458", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_4_first_use", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2598", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_5_command_families", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2645", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_6_output_format", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2672", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_7_accuracy_and_disclosure_rules", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2728", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_8_determinism", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2778", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_9_verification_and_quality_control", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2811", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_10_quality_evaluation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2846", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_11_agent_integration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2873", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_12_supported_languages_and_formats", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2922", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_13_performance", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2958", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_14_known_limits", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2977", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_15_documentation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3015", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_16_improvement", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3026", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_17_license", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3041", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_the_quality_panel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1147", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_real_runs", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1377", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_measured", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1606", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_the_goal_one_question_one_complete_answer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_standing_on_the_whole_field", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1925", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_the_honesty_contract", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1948", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_set_it_up_in_your_coding_agent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2101", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_improve_it_with_your_agent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2213", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_same_answer_a_fraction_of_the_tokens_read_this_table_first_if_your_agent_is_on_a_budget", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L227", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_languages", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2275", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_reference_guide", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2318", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_release_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3052", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_see_the_map_not_just_the_numbers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L310", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_documentation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3107", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_licence", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3135", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_against_the_leading_graph_database_code_context_mcp_server", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L427", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_graph_ranked_retrieval_it_finds_the_right_files_more_often_than_the_alternatives", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L471", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_saves_tokens_it_answers_for_a_fraction_of_the_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L724", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_where_it_pays_most_and_where_it_does_not", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L751", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_better_code_it_automates_the_review_judgments_nobody_has_time_to_make_every_lens_from_published_research", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L825", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_what_it_answers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L945", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_quickstart", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L987", + "weight": 1.0 + }, + { + "source": "ripwire_readme_set_it_up_in_your_coding_agent", + "target": "ripwire_readme_1_optional_register_the_mcp_server", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2127", + "weight": 1.0 + }, + { + "source": "ripwire_readme_set_it_up_in_your_coding_agent", + "target": "ripwire_readme_2_install_the_skills", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2183", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_honesty_contract", + "target": "ripwire_readme_what_it_misses_and_what_to_run_next", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1953", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_honesty_contract", + "target": "ripwire_readme_in_the_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2033", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_honesty_contract", + "target": "ripwire_readme_in_the_numbers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2057", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_honesty_contract", + "target": "ripwire_readme_in_the_tests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2082", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_quality_panel", + "target": "ripwire_readme_nest_is_a_max_so_it_cannot_tell_a_long_function_from_a_tangled_one", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1181", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_next", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_store", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_stock_in", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_current_stock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_test_customers_customercrudtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_test_customers_customerdeleteguardtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_test_factors_factorsoftdeletetests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_test_factors_newfactor2viewtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_test_inventory_productinstoremathtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_test_inventory_transferworkflowtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract", + "target": "tests_test_models_contract_modelspackagecontracttests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract", + "target": "tests_test_urls_contract_urlcontracttests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_test_view_smoke_viewsmoketests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_apps_adminconfig", + "target": "admin_apps_py_appconfig", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_apps_adminpanelconfig", + "target": "admin_panel_apps_py_appconfig", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_management_commands_send_daily_report_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_inventoryexception", + "target": "admin_panel_views_helpers_py_exception", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_apps_adminpanelconfig", + "target": "backups_refactor_2026_10_09_apps_py_appconfig", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_inventoryexception", + "target": "backups_refactor_2026_10_09_views_py_exception", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "tests_test_customers_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "tests_test_customers_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "tests_test_factors_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_py_simpletestcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_py_simpletestcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storeroomadmin", + "target": "admin_panel_admin_storeroomadmin_get_owners_count", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_add_arguments", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_management_commands_send_daily_report_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers_customer", + "target": "admin_panel_models_customers_customer_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers_customer", + "target": "admin_panel_models_customers_customer_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers_phonenumber", + "target": "admin_panel_models_customers_phonenumber_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors_factor", + "target": "admin_panel_models_factors_factor_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/factors.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_product", + "target": "admin_panel_models_products_product_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productcategory", + "target": "admin_panel_models_products_productcategory_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_save", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_productstockhistory", + "target": "admin_panel_models_store_productstockhistory_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storeroom", + "target": "admin_panel_models_store_storeroom_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_panel_models_store_storetransferrequest_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L140", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_panel_models_store_storetransferrequest_clean", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "admin_panel_models_system_cachetable", + "target": "admin_panel_models_system_cachetable_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/system.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_models_users_userprofile", + "target": "admin_panel_models_users_userprofile_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/users.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin_storeroomadmin", + "target": "backups_refactor_2026_10_09_admin_storeroomadmin_get_owners_count", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_cachetable", + "target": "backups_refactor_2026_10_09_models_cachetable_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L514", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_customer", + "target": "backups_refactor_2026_10_09_models_customer_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_customer", + "target": "backups_refactor_2026_10_09_models_customer_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_factor", + "target": "backups_refactor_2026_10_09_models_factor_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_phonenumber", + "target": "backups_refactor_2026_10_09_models_phonenumber_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_product", + "target": "backups_refactor_2026_10_09_models_product_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_productcategory", + "target": "backups_refactor_2026_10_09_models_productcategory_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_productinstore", + "target": "backups_refactor_2026_10_09_models_productinstore_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L221", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_productinstore", + "target": "backups_refactor_2026_10_09_models_productinstore_save", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L225", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_productinstore", + "target": "backups_refactor_2026_10_09_models_productinstore_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_productstockhistory", + "target": "backups_refactor_2026_10_09_models_productstockhistory_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L311", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_storeroom", + "target": "backups_refactor_2026_10_09_models_storeroom_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_storetransferrequest", + "target": "backups_refactor_2026_10_09_models_storetransferrequest_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L390", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_storetransferrequest", + "target": "backups_refactor_2026_10_09_models_storetransferrequest_clean", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L393", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_userprofile", + "target": "backups_refactor_2026_10_09_models_userprofile_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "project_tree_counts", + "target": "project_tree_counts_add_file", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "tests_test_customers_customercrudtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "tests_test_customers_customercrudtests_test_add_customer_creates_phones", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "tests_test_customers_customercrudtests_test_edit_customer_replaces_phones", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "tests_test_customers_customerdeleteguardtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "tests_test_customers_customerdeleteguardtests_test_customer_without_history_is_deactivated", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "tests_test_customers_customerdeleteguardtests_test_customer_with_financial_history_is_never_deleted", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "tests_test_factors_factorsoftdeletetests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "tests_test_factors_factorsoftdeletetests_test_delete_is_soft", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "tests_test_factors_factorsoftdeletetests_test_instore_transaction_protects_its_factor", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_get", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_newfactor2viewtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_newfactor2viewtests_test_new_factor2_creates_factor_article_and_stock_out", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_oversell_without_creating_factor", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_initial_in_records_history_and_stock", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_editing_a_row_updates_stock_and_history", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_deleting_a_row_creates_history_and_reduces_stock", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_garbage_numeric_values_are_coerced_to_zero", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_create_transfer_request_pending", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_create_rejects_insufficient_stock", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_create_rejects_same_store", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_create_rejects_non_positive_quantity", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L135", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L142", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_double_approval_is_rejected", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L156", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L166", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_cancel_by_requester", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L178", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_permission_denied_for_outsider", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_all_models_importable_from_package", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_models_are_registered_under_admin_panel_app", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_db_table_names_are_unchanged_defaults", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_star_import_leak_names_still_present", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_models_package_has_no_duplicate_registration", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_urlcontracttests_all_names", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_urlcontracttests_test_url_name_snapshot_unchanged", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_urlcontracttests_test_every_url_reverses", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_urlcontracttests_test_all_view_callables_are_importable", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L145", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_test_every_endpoint_responds_without_server_error", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L207", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_now_ms", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_url", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_endpoints", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_rationale_54", + "target": "admin_panel_admin_storeroomownerinline", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_rationale_75", + "target": "admin_panel_admin_storeroomadmin_get_owners_count", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_115", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_123", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_89", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_rationale_158", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_rationale_30", + "target": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init_rationale_1", + "target": "admin_panel_models_init", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_rationale_34", + "target": "admin_panel_models_store_storeroomowner", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_160", + "target": "admin_panel_services_reject_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_187", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_20", + "target": "admin_panel_services_check_target_store_permission", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_30", + "target": "admin_panel_services_check_source_store_permission", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_40", + "target": "admin_panel_services_get_product_current_stock", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_64", + "target": "admin_panel_services_create_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_99", + "target": "admin_panel_services_approve_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p_rationale_7", + "target": "admin_panel_templatetags_remove_q_p_remove_query_param", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_rationale_229", + "target": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L229", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_rationale_252", + "target": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L252", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rationale_236", + "target": "admin_panel_views_finance_inventory_movements_report", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L236", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rationale_319", + "target": "admin_panel_views_finance_financial_dashboard", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L319", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_1", + "target": "admin_panel_views_helpers", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_13", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_18", + "target": "admin_panel_views_helpers_safe_int", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_29", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_42", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init_rationale_1", + "target": "admin_panel_views_init", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_rationale_165", + "target": "admin_panel_views_store_store_transfers", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_rationale_204", + "target": "admin_panel_views_store_process_transfer_action", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L204", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin_rationale_54", + "target": "backups_refactor_2026_10_09_admin_storeroomownerinline", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_admin_rationale_75", + "target": "backups_refactor_2026_10_09_admin_storeroomadmin_get_owners_count", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/admin.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_models_rationale_97", + "target": "backups_refactor_2026_10_09_models_storeroomowner", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_rationale_160", + "target": "backups_refactor_2026_10_09_services_reject_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_rationale_187", + "target": "backups_refactor_2026_10_09_services_cancel_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_rationale_20", + "target": "backups_refactor_2026_10_09_services_check_target_store_permission", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_rationale_30", + "target": "backups_refactor_2026_10_09_services_check_source_store_permission", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_rationale_40", + "target": "backups_refactor_2026_10_09_services_get_product_current_stock", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_rationale_64", + "target": "backups_refactor_2026_10_09_services_create_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_rationale_99", + "target": "backups_refactor_2026_10_09_services_approve_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_1281", + "target": "backups_refactor_2026_10_09_views_store_transfers", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1281", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_1320", + "target": "backups_refactor_2026_10_09_views_process_transfer_action", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1320", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_2852", + "target": "backups_refactor_2026_10_09_views_api_check_status_inquiry", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2852", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_2875", + "target": "backups_refactor_2026_10_09_views_api_check_sabt_inquiry", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2875", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_313", + "target": "backups_refactor_2026_10_09_views_inventory_movements_report", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L313", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_39", + "target": "backups_refactor_2026_10_09_views_inventoryexception", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_395", + "target": "backups_refactor_2026_10_09_views_financial_dashboard", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L395", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_43", + "target": "backups_refactor_2026_10_09_views_safe_int", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_53", + "target": "backups_refactor_2026_10_09_views_parse_jalali_date", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_rationale_65", + "target": "backups_refactor_2026_10_09_views_parse_timestamp", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "khatibi_asgi_rationale_1", + "target": "khatibi_asgi", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/asgi.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_settings_rationale_1", + "target": "khatibi_settings", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/settings.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_urls_rationale_1", + "target": "khatibi_urls", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi_rationale_1", + "target": "khatibi_wsgi", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/wsgi.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "manage_rationale_2", + "target": "manage", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "manage_rationale_8", + "target": "manage_main", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_1", + "target": "project_tree", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_110", + "target": "project_tree_sorted_entries", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_145", + "target": "project_tree_write_tree", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L145", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_176", + "target": "project_tree_format_header", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L176", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_192", + "target": "project_tree_generate_snapshot", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L192", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_67", + "target": "project_tree_counts", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_91", + "target": "project_tree_warn", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_97", + "target": "project_tree_normalized_path", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_1", + "target": "tests_factories", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_23", + "target": "tests_factories_make_user", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_47", + "target": "tests_factories_make_store", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_79", + "target": "tests_factories_stock_in", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_92", + "target": "tests_factories_current_stock", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "tests_test_customers_rationale_1", + "target": "tests_test_customers", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_factors_rationale_1", + "target": "tests_test_factors", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_factors_rationale_47", + "target": "tests_test_factors_newfactor2viewtests", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_rationale_1", + "target": "tests_test_inventory", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_rationale_1", + "target": "tests_test_models_contract", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_rationale_67", + "target": "tests_test_models_contract_modelspackagecontracttests_test_star_import_leak_names_still_present", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_rationale_1", + "target": "tests_test_urls_contract", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_rationale_146", + "target": "tests_test_urls_contract_urlcontracttests_test_all_view_callables_are_importable", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L146", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_rationale_1", + "target": "tests_test_view_smoke", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_rationale_84", + "target": "tests_test_view_smoke_viewsmoketests_endpoints", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "ripwire_readme", + "target": "agents", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3119", + "weight": 1.0 + }, + { + "source": "entrypoint_sh__entry", + "target": "manage", + "relation": "invokes", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.55, + "context": "script_invocation", + "source_file": "entrypoint.sh", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_progress_callback", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "target": "admin_panel_views_cheque_inquiry_run_bpi_cheque_inquiry_logic", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L269", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "target": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L240", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_api_check_sabt_inquiry", + "target": "backups_refactor_2026_10_09_views_run_bpi_cheque_inquiry_logic", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2892", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_views_api_check_status_inquiry", + "target": "backups_refactor_2026_10_09_views_run_cbi_sayad_inquiry_logic", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2863", + "weight": 1.0 + }, + { + "source": "project_tree_parse_args", + "target": "project_tree_non_negative_integer", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "project_tree.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customernewaction", + "target": "admin_panel_models_actions_action", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/actions.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerhesabdariadd", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/customers.py", + "source_location": "L450", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customersadd", + "target": "admin_panel_models_customers_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/customers.py", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_factordel", + "target": "admin_panel_models_products_productinstore", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L441", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_models_factors_factoriteam", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_models_products_productinstore", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L142", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_models_factors_factor", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_models_factors_factoriteam", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L272", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_addsarresid", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L822", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_addsarresid", + "target": "admin_panel_models_finance_sarresid", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L836", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_pardakhtnesiye", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L905", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_passcheck", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L699", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newstore", + "target": "admin_panel_models_store_storeroom", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L253", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productadd", + "target": "admin_panel_models_products_product", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L269", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productadd", + "target": "admin_panel_models_products_productinstore", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L275", + "weight": 1.0 + }, + { + "source": "ripwire_readme_nest_is_a_max_so_it_cannot_tell_a_long_function_from_a_tangled_one", + "target": "admin_views_index", + "relation": "references", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "index", + "source_file": "ripwire - README.md", + "source_location": "L1257", + "weight": 1.0 + }, + { + "source": "backups_refactor_2026_10_09_services_check_source_store_permission", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L29", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_check_target_store_permission", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L19", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_create_transfer_request", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L57", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_create_transfer_request", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L59", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_get_product_current_stock", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L39", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_get_product_current_stock", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L39", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_approve_transfer_request", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "return_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L98", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_cancel_transfer_request", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "return_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L186", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_create_transfer_request", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "return_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L63", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_reject_transfer_request", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "return_type", + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L159", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L52", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L32", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "admin_panel_models_actions_action", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/actions.py", + "source_location": "L26", + "weight": 0.8 + }, + { + "source": "admin_panel_models_actions_visitqueue", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/actions.py", + "source_location": "L14", + "weight": 0.8 + }, + { + "source": "admin_panel_models_factors_factor", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/factors.py", + "source_location": "L19", + "weight": 0.8 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_store_productstockhistory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/products.py", + "source_location": "L112", + "weight": 0.8 + }, + { + "source": "admin_panel_models_store_storeroom", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/store.py", + "source_location": "L15", + "weight": 0.8 + }, + { + "source": "admin_panel_models_store_storeroomowner", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/store.py", + "source_location": "L42", + "weight": 0.8 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/store.py", + "source_location": "L102", + "weight": 0.8 + }, + { + "source": "admin_panel_models_users_userprofile", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/users.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlist", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L100", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlistall", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L157", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlisttoday", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L169", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlistuser", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L107", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlistusertoday", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L196", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_customeraction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_customereditaction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L137", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_customernazar", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L52", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_customernewaction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L80", + "weight": 0.8 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/factors.py", + "source_location": "L72", + "weight": 0.8 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/factors.py", + "source_location": "L284", + "weight": 0.8 + }, + { + "source": "admin_panel_views_finance_inventory_movements_report", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/finance.py", + "source_location": "L240", + "weight": 0.8 + }, + { + "source": "admin_panel_views_finance_report", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/finance.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "admin_panel_views_finance_rezayat_dashboard", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/finance.py", + "source_location": "L960", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_models_action", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L455", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_models_factor", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L149", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_models_storeroom", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L78", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_models_storeroomowner", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L105", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_models_storetransferrequest", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L352", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_models_userprofile", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L21", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_models_visitqueue", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/models.py", + "source_location": "L418", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_approve_transfer_request", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L124", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_approve_transfer_request", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L125", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_approve_transfer_request", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L126", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_services_get_product_current_stock", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/services.py", + "source_location": "L44", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionjson", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L949", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlist", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2185", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlist", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2186", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistall", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2242", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistall", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2243", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlisttoday", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2254", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlisttoday", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2255", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistuser", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2192", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistuser", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2193", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistusertoday", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2276", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_actionlistusertoday", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2282", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customer", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L818", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customeraction", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2108", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customeraction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2121", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customerdel", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2013", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customereditaction", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2219", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customereditaction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2223", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customerfactor", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L929", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customerfactors", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L864", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customernazar", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2137", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customernazar", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2138", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customernew", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L829", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customernew2", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L841", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customernewaction", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2162", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_customernewaction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2166", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_factordel", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1905", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_factordel", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1966", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_factordel", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1967", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_financial_dashboard", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L462", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_inventory_movements_report", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L317", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_inventory_movements_report", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L318", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_inventory_movements_report", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L319", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1576", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1598", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1653", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1668", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1707", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1716", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newfactor2", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1836", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newoperation", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1271", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newoperation", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1272", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newoperation", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1274", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_newstore", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1368", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operation", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1431", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operation", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1445", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operation", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1481", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operationproduct", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1252", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operationproduct", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1253", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operationproduct", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1256", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operations", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1224", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operations", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1225", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_operations", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1228", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_process_transfer_action", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1327", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productadd", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1383", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productadd", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1385", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productadd", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1389", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productadd", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1391", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productdel", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1421", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productedit", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1410", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productedit", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1412", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productmojodi", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L964", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productmojodi", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L971", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_productsjson", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L942", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_report", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L113", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_report_debtors_no_vosol", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L236", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_rezayat", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2303", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_rezayat_dashboard", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2362", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_rezayat_dashboard", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2393", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_rezayatedit", + "target": "backups_refactor_2026_10_09_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L2330", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_store", + "target": "backups_refactor_2026_10_09_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1150", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_store", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1151", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_store", + "target": "backups_refactor_2026_10_09_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1157", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_store", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1165", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_store", + "target": "backups_refactor_2026_10_09_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1184", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_store_transfers", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1284", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_store_transfers", + "target": "backups_refactor_2026_10_09_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1288", + "weight": 0.8 + }, + { + "source": "backups_refactor_2026_10_09_views_stores", + "target": "backups_refactor_2026_10_09_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "backups/refactor-2026-10-09/views.py", + "source_location": "L1135", + "weight": 0.8 + }, + { + "source": "check_finance_check_financial_discrepancy", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "check_finance.py", + "source_location": "L42", + "weight": 0.8 + }, + { + "source": "ghost_hunter_run_360_audit", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "ghost_hunter.py", + "source_location": "L37", + "weight": 0.8 + }, + { + "source": "reconciliation_tool_run_audit", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "reconciliation_tool.py", + "source_location": "L42", + "weight": 0.8 + }, + { + "source": "tests_factories_current_stock", + "target": "admin_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L94", + "weight": 0.8 + }, + { + "source": "tests_factories_current_stock", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L94", + "weight": 0.8 + }, + { + "source": "tests_factories_current_stock", + "target": "admin_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L94", + "weight": 0.8 + }, + { + "source": "tests_factories_make_category", + "target": "admin_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L66", + "weight": 0.8 + }, + { + "source": "tests_factories_make_customer", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L100", + "weight": 0.8 + }, + { + "source": "tests_factories_make_customer", + "target": "admin_models_phonenumber", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L106", + "weight": 0.8 + }, + { + "source": "tests_factories_make_product", + "target": "admin_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L70", + "weight": 0.8 + }, + { + "source": "tests_factories_make_product", + "target": "admin_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L73", + "weight": 0.8 + }, + { + "source": "tests_factories_make_store", + "target": "admin_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L53", + "weight": 0.8 + }, + { + "source": "tests_factories_make_user", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L29", + "weight": 0.8 + }, + { + "source": "tests_factories_stock_in", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L80", + "weight": 0.8 + }, + { + "source": "tests_factories_stock_in", + "target": "admin_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L81", + "weight": 0.8 + }, + { + "source": "tests_factories_stock_in", + "target": "admin_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L82", + "weight": 0.8 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_customers.py", + "source_location": "L30", + "weight": 0.8 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "admin_models_phonenumber", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_customers.py", + "source_location": "L34", + "weight": 0.8 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_customers.py", + "source_location": "L84", + "weight": 0.8 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "admin_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_factors.py", + "source_location": "L19", + "weight": 0.8 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_factors.py", + "source_location": "L36", + "weight": 0.8 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "admin_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_factors.py", + "source_location": "L77", + "weight": 0.8 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "admin_models_factoriteam", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_factors.py", + "source_location": "L80", + "weight": 0.8 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_inventory.py", + "source_location": "L39", + "weight": 0.8 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "admin_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_view_smoke.py", + "source_location": "L54", + "weight": 0.8 + }, + { + "source": "admin_panel_templates_admin_panel_base", + "target": "admin_panel_templates_admin_panel_basehesabdari", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "AMBIGUOUS", + "confidence_score": 0.2, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_templatetags_tojalali", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 60 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "javascript_jquery", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 105 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_customer_delete", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 220 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "javascript_pdatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 246 + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "api_endpoint_panel_customer_del", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "api_endpoint_panel_productmojodi", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_productsjson", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "js_library_pdatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "panel_urls_productmojodi", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html", + "target": "concept_datatables", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 322, + 322 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_kamadatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 203, + 203 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "django_templatetags_custom_tags_tojalali", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 35, + 35 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "javascript_library_pdatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 180, + 180 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags_tocurrency", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 14 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "lib_pdatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 192 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags_tojalali", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 60 + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "javascript_kamadatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "copilot_chat", + "target": "github_copilot_instructions_graphify", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "admin_panel_templates_admin_panel_base", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "admin_panel_templates_admin_panel_base", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerid", + "target": "admin_panel_templates_admin_panel_customerbase", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_actionlistusertoday", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_bedehi", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_entezar", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_hesabdari", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_hesabdari_residnashone", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_index", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_p_logout", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_rezayat", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_stores", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_bulma_min_css", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_datatables_datatables_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_kamadatepicker_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_persian-datepicker_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_style_css", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_django_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_operations", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_productadd", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_store", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_store_transfers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "admin_panel_url_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "concept_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "django_template_tag_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "django_template_tag_url", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "library_bulma", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "library_datatables", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehi", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 10 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehikhadamat", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 11 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehinasb", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 12 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_context_variable_mandehesabkp", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 18 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_templatetags_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 2 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 4 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_context_variable_articls", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "javascript_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 88 + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_templates_admin_panel_customeractioninc_html", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_urls_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_urls_customernewaction", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "django_template_tag_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "django_template_tag_url", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "library_pdatepicker", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "django_templatetags_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 3 + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "concept_url_panel_customer_factor_del", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerid", + "target": "concept_url_admin_panel_newfactor", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "admin_panel_url_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_category", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_permission", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_filter_tojalali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_tag_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_tag_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_customeredit", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_customerfactors", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_newfactor", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "admin_panel_urls_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "admin_panel_urls_customeredit", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "django_contrib_staticfiles_templatetags_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "admin_panel_urls_newfactor", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_category", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_concepts_csrf_token", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_template_tags_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_template_tags_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "django_templatetags_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 2, + 2 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 201, + 201 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 29, + 29 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_pardakhtnesiye", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_passcheck", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "concept_all_sarresid", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "django_context_variable_mandehesabkp", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "javascript_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "javascript_pdatepicker", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_pardakhtnesiye", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 111, + 111 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_passcheck", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 201, + 201 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "django_permission_viewreportmali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 4, + 4 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_urls_pardakhtnesiye", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 106 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "lib_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 182 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 2 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 4 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_urls_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 53 + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_csrf_token", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_static_files", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_url_admin_panel_p_login", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "form_field_password", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "form_field_username", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "static_admin_panel_bulma-rtl_min_css", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "template_variable_message", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_csrf_token", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_newstore", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_operations", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_store", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "form_field_storename", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "template_variable_productsum", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "django_url_admin_panel_operations", + "target": "template_variable_s_id", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "django_url_admin_panel_store", + "target": "template_variable_s_id", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "github_copilot_instructions", + "target": "graphify-out_graph_report_md", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions", + "target": "graphify-out_wiki_index_md", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "graphify_query", + "target": "graphify-out_graph_json", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "django_context_variable_articls", + "target": "concept_articl_model", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "source": "templatetags_custom_tags", + "target": "templatetags_custom_tags_tocurrency", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "source": "templatetags_custom_tags", + "target": "templatetags_custom_tags_tojalali", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "django_contrib_auth_models_permission", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 33 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_data_sarresid", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 49 + }, + { + "source": "concept_articl_model", + "target": "concept_customer_model", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_action_model", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_customer_model", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_user", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "target": "django_url_admin_panel_newfactor", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "django_url_admin_panel_productsjson", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_all_products", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "template_variable_productsum", + "target": "product_property_mojodi", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "template_variable_productsum", + "target": "product_property_product_name", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html_createcs", + "target": "concept_customer_modal_ui", + "relation": "calls", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 334, + 334 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html_openrow", + "target": "concept_customer_modal_ui", + "relation": "calls", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 382, + 382 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_data_sarresid", + "target": "admin_panel_data_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_data_sarresid", + "target": "admin_panel_data_factor", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 72, + 72 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_data_sarresid", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 54, + 54 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_user", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_client_side_form_logic", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html", + "target": "concept_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 321, + 321 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_customer_data", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 25, + 25 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "javascript_library_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 172, + 172 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_customer", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_factor", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_productcategory", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "concept_product", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "concept_productcategory", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_explain", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_path", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_query", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + } + ], + "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": "graphify_output_artifacts", + "label": "Graphify Output Artifacts", + "nodes": [ + "graphify-out_graph_json", + "graphify-out_wiki_index_md", + "graphify-out_graph_report_md" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "id": "graphify_subcommands", + "label": "Graphify Subcommands", + "nodes": [ + "graphify_query", + "graphify_path", + "graphify_explain" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "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": "bedehi_report_navigation", + "label": "Bedehi Report Navigation", + "nodes": [ + "django_urls_admin_panel_bedehi", + "django_urls_admin_panel_bedehikhadamat", + "django_urls_admin_panel_bedehinasb" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "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_list_page", + "label": "Customer List Page", + "nodes": [ + "admin_panel_templates_admin_panel_entezar_html", + "concept_customer_data", + "concept_url_admin_panel_customers" + ], + "relation": "form", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/entezar.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": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customernewbackup_html", + "admin_panel_urls_newfactor", + "concept_client_side_form_logic", + "concept_customer", + "concept_category" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html" + }, + { + "id": "customer_management_ui_flow", + "label": "Customer Management UI Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customersbk_html", + "admin_panel_templates_admin_panel_customersbk_html_createcs", + "admin_panel_templates_admin_panel_customersbk_html_openrow", + "concept_customer_modal_ui" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.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": "new_factor_item_creation_flow", + "label": "New Factor Item Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "panel_urls_productmojodi", + "concept_product", + "concept_productcategory" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.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", + "concept_url_admin_panel_hesabdari", + "concept_url_admin_panel_bedehi" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "bedehi_template_data_contract", + "label": "Bedehi Template Data Contract", + "nodes": [ + "admin_panel_templates_admin_panel_bedehi_html", + "django_context_variable_mandehesabkp", + "django_context_variable_articls" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "customer_action_creation_flow", + "label": "Customer Action Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeraction", + "admin_panel_urls_customernewaction", + "concept_action_model" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "customer_management_ui", + "label": "Customer Management UI", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "concept_customer", + "django_url_admin_panel_customeredit", + "api_endpoint_panel_customer_del", + "django_url_admin_panel_customerfactors" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "hesabdaricheckpass_payment_flow", + "label": "Client-side Payment Processing Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "admin_panel_urls_passcheck", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "nesiye_payment_flow", + "label": "Nesiye Payment Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdariresidnashode", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "django_url_admin_panel_productsjson", + "api_endpoint_panel_productmojodi", + "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "django_url_admin_panel_newfactor" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "store_management_flow", + "label": "Store and Inventory Management Flow", + "nodes": [ + "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" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + } + ], + "built_at_commit": "6f36db63a15699ff22b5804ed630c7c4564b50b9" +} \ No newline at end of file diff --git a/graphify-out/backup-graph-presemantic-20261009-193633.json b/graphify-out/backup-graph-presemantic-20261009-193633.json new file mode 100644 index 0000000..56b943b --- /dev/null +++ b/graphify-out/backup-graph-presemantic-20261009-193633.json @@ -0,0 +1,25272 @@ +{ + "directed": false, + "multigraph": false, + "graph": { + "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": "graphify_output_artifacts", + "label": "Graphify Output Artifacts", + "nodes": [ + "graphify-out_graph_json", + "graphify-out_wiki_index_md", + "graphify-out_graph_report_md" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "id": "graphify_subcommands", + "label": "Graphify Subcommands", + "nodes": [ + "graphify_query", + "graphify_path", + "graphify_explain" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "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": "bedehi_report_navigation", + "label": "Bedehi Report Navigation", + "nodes": [ + "django_urls_admin_panel_bedehi", + "django_urls_admin_panel_bedehikhadamat", + "django_urls_admin_panel_bedehinasb" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "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_list_page", + "label": "Customer List Page", + "nodes": [ + "admin_panel_templates_admin_panel_entezar_html", + "concept_customer_data", + "concept_url_admin_panel_customers" + ], + "relation": "form", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/entezar.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": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customernewbackup_html", + "admin_panel_urls_newfactor", + "concept_client_side_form_logic", + "concept_customer", + "concept_category" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html" + }, + { + "id": "customer_management_ui_flow", + "label": "Customer Management UI Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customersbk_html", + "admin_panel_templates_admin_panel_customersbk_html_createcs", + "admin_panel_templates_admin_panel_customersbk_html_openrow", + "concept_customer_modal_ui" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.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": "new_factor_item_creation_flow", + "label": "New Factor Item Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "panel_urls_productmojodi", + "concept_product", + "concept_productcategory" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.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", + "concept_url_admin_panel_hesabdari", + "concept_url_admin_panel_bedehi" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "bedehi_template_data_contract", + "label": "Bedehi Template Data Contract", + "nodes": [ + "admin_panel_templates_admin_panel_bedehi_html", + "django_context_variable_mandehesabkp", + "django_context_variable_articls" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "customer_action_creation_flow", + "label": "Customer Action Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeraction", + "admin_panel_urls_customernewaction", + "concept_action_model" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "customer_management_ui", + "label": "Customer Management UI", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "concept_customer", + "django_url_admin_panel_customeredit", + "api_endpoint_panel_customer_del", + "django_url_admin_panel_customerfactors" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "hesabdaricheckpass_payment_flow", + "label": "Client-side Payment Processing Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "admin_panel_urls_passcheck", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "nesiye_payment_flow", + "label": "Nesiye Payment Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdariresidnashode", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "django_url_admin_panel_productsjson", + "api_endpoint_panel_productmojodi", + "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "django_url_admin_panel_newfactor" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "store_management_flow", + "label": "Store and Inventory Management Flow", + "nodes": [ + "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" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + } + ], + "schema_version": 1, + "graphify_version": "0.9.82" + }, + "nodes": [ + { + "id": "admin_panel_models_store_storeroom", + "label": "StoreRoom", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroom", + "source_file": "admin_panel/models/store.py", + "source_location": "L6" + }, + { + "id": "admin_panel_models_store_storeroom_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/store.py", + "source_location": "L7" + }, + { + "id": "admin_panel_models_store_storeroomowner", + "label": "StoreRoomOwner", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomowner", + "source_file": "admin_panel/models/store.py", + "source_location": "L33" + }, + { + "id": "admin_panel_models_store_storetransferrequest", + "label": "StoreTransferRequest", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storetransferrequest", + "source_file": "admin_panel/models/store.py", + "source_location": "L65" + }, + { + "id": "admin_panel_models_store_storetransferrequest_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/store.py", + "source_location": "L137" + }, + { + "id": "admin_panel_models_store_storetransferrequest_status", + "label": "Status", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "status", + "source_file": "admin_panel/models/store.py", + "source_location": "L66" + }, + { + "id": "tests_test_inventory_transferworkflowtests", + "label": "TransferWorkflowTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "transferworkflowtests", + "source_file": "tests/test_inventory.py", + "source_location": "L99" + }, + { + "id": "project_tree_counts", + "label": "Counts", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "counts", + "source_file": "project_tree.py", + "source_location": "L66" + }, + { + "id": "tests_test_urls_contract_urlcontracttests", + "label": "UrlContractTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": "urlcontracttests", + "source_file": "tests/test_urls_contract.py", + "source_location": "L117" + }, + { + "id": "admin_panel_models_system_cachetable", + "label": "CacheTable", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 104, + "community_name": "system.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "cachetable", + "source_file": "admin_panel/models/system.py", + "source_location": "L4" + }, + { + "id": "tests_test_view_smoke_viewsmoketests", + "label": "ViewSmokeTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "ViewSmokeTests", + "file_type": "code", + "norm_label": "viewsmoketests", + "source_file": "tests/test_view_smoke.py", + "source_location": "L30" + }, + { + "id": "admin_models_user", + "label": "User", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "user", + "source_file": "admin/models.py", + "source_location": "L4" + }, + { + "id": "admin_panel_models_actions_action", + "label": "Action", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "action", + "source_file": "admin_panel/models/actions.py", + "source_location": "L24" + }, + { + "id": "admin_panel_models_actions_visitqueue", + "label": "VisitQueue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "visitqueue", + "source_file": "admin_panel/models/actions.py", + "source_location": "L5" + }, + { + "id": "admin_panel_models_factors_factor", + "label": "Factor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factor", + "source_file": "admin_panel/models/factors.py", + "source_location": "L5" + }, + { + "id": "admin_panel_models_factors_factor_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/factors.py", + "source_location": "L6" + }, + { + "id": "admin_panel_models_factors_factoriteam", + "label": "FactorIteam", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factoriteam", + "source_file": "admin_panel/models/factors.py", + "source_location": "L52" + }, + { + "id": "admin_panel_models_users_userprofile", + "label": "UserProfile", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "userprofile", + "source_file": "admin_panel/models/users.py", + "source_location": "L6" + }, + { + "id": "admin_panel_admin_storeroomadmin", + "label": "StoreRoomAdmin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomadmin", + "source_file": "admin_panel/admin.py", + "source_location": "L64" + }, + { + "id": "admin_panel_admin_storeroomownerinline", + "label": "StoreRoomOwnerInline", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomownerinline", + "source_file": "admin_panel/admin.py", + "source_location": "L53" + }, + { + "id": "admin_panel_admin_storetransferrequestadmin", + "label": "StoreTransferRequestAdmin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storetransferrequestadmin", + "source_file": "admin_panel/admin.py", + "source_location": "L24" + }, + { + "id": "admin_models_customer", + "label": "Customer", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "customer", + "source_file": "admin/models.py", + "source_location": "L19" + }, + { + "id": "admin_models_factor", + "label": "Factor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factor", + "source_file": "admin/models.py", + "source_location": "L44" + }, + { + "id": "admin_models_factoriteam", + "label": "FactorIteam", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factoriteam", + "source_file": "admin/models.py", + "source_location": "L69" + }, + { + "id": "admin_models_phonenumber", + "label": "PhoneNumber", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "phonenumber", + "source_file": "admin/models.py", + "source_location": "L24" + }, + { + "id": "admin_models_product", + "label": "Product", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "product", + "source_file": "admin/models.py", + "source_location": "L34" + }, + { + "id": "admin_models_productcategory", + "label": "ProductCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productcategory", + "source_file": "admin/models.py", + "source_location": "L31" + }, + { + "id": "admin_models_productinstore", + "label": "ProductInStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productinstore", + "source_file": "admin/models.py", + "source_location": "L39" + }, + { + "id": "admin_models_storeroom", + "label": "StoreRoom", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroom", + "source_file": "admin/models.py", + "source_location": "L28" + }, + { + "id": "admin_models_visitqueue", + "label": "VisitQueue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "visitqueue", + "source_file": "admin/models.py", + "source_location": "L76" + }, + { + "id": "tests_test_customers_customercrudtests", + "label": "CustomerCrudTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "customercrudtests", + "source_file": "tests/test_customers.py", + "source_location": "L12" + }, + { + "id": "tests_test_customers_customerdeleteguardtests", + "label": "CustomerDeleteGuardTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "customerdeleteguardtests", + "source_file": "tests/test_customers.py", + "source_location": "L59" + }, + { + "id": "tests_test_factors_factorsoftdeletetests", + "label": "FactorSoftDeleteTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "factorsoftdeletetests", + "source_file": "tests/test_factors.py", + "source_location": "L15" + }, + { + "id": "tests_test_factors_newfactor2viewtests", + "label": "NewFactor2ViewTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "newfactor2viewtests", + "source_file": "tests/test_factors.py", + "source_location": "L46" + }, + { + "id": "tests_test_inventory_productinstoremathtests", + "label": "ProductInStoreMathTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "productinstoremathtests", + "source_file": "tests/test_inventory.py", + "source_location": "L19" + }, + { + "id": "admin_panel_management_commands_gt_esh_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12" + }, + { + "id": "admin_panel_management_commands_send_daily_report_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17" + }, + { + "id": "admin_panel_models_products_product", + "label": "Product", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "product", + "source_file": "admin_panel/models/products.py", + "source_location": "L12" + }, + { + "id": "admin_panel_models_products_product_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/products.py", + "source_location": "L13" + }, + { + "id": "admin_panel_models_products_productcategory", + "label": "ProductCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productcategory", + "source_file": "admin_panel/models/products.py", + "source_location": "L5" + }, + { + "id": "admin_panel_models_products_productinstore", + "label": "ProductInStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productinstore", + "source_file": "admin_panel/models/products.py", + "source_location": "L28" + }, + { + "id": "admin_panel_models_products_productinstore_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/products.py", + "source_location": "L29" + }, + { + "id": "admin_panel_models_products_productinstore_movementtype", + "label": "MovementType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "movementtype", + "source_file": "admin_panel/models/products.py", + "source_location": "L35" + }, + { + "id": "admin_panel_models_store_productstockhistory", + "label": "ProductStockHistory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productstockhistory", + "source_file": "admin_panel/models/store.py", + "source_location": "L50" + }, + { + "id": "admin_panel_models_store_productstockhistory_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/store.py", + "source_location": "L58" + }, + { + "id": "admin_panel_migrations_0017_factoriteam_garantyesh_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 23, + "community_name": "0017_factoriteam_garantyesh.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L6" + }, + { + "id": "admin_apps_adminconfig", + "label": "AdminConfig", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "adminconfig", + "source_file": "admin/apps.py", + "source_location": "L4" + }, + { + "id": "admin_panel_apps_adminpanelconfig", + "label": "AdminPanelConfig", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "adminpanelconfig", + "source_file": "admin_panel/apps.py", + "source_location": "L4" + }, + { + "id": "admin_panel_migrations_0002_auto_20220114_1616_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0003_auto_20220115_1401_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0031_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0021_alter_article_type_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 26, + "community_name": "0021_alter_article_type.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0027_alter_action_nazar_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 28, + "community_name": "0027_alter_action_nazar.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0004_factor_paytype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0006_auto_20220121_2100_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0013_alter_factor_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0014_auto_20220123_1348_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0020_auto_20220126_1532_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0022_article_typepy_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0023_alter_article_typepy_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0025_action_actiontype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0028_action_grade_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0030_auto_20220414_1047_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0037_sarresid_sarresiddt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0039_customer_last_bazdid_dt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0041_auto_20240216_1607_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0047_alter_productinstore_movement_type_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0049_alter_productinstore_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0055_action_nextnazardt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0056_auto_20260731_1824_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L7" + }, + { + "id": "admin_panel_models_finance_article", + "label": "Article", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "article", + "source_file": "admin_panel/models/finance.py", + "source_location": "L12" + }, + { + "id": "admin_panel_models_finance_article_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/finance.py", + "source_location": "L13" + }, + { + "id": "admin_panel_models_finance_articletype", + "label": "ArticleType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "articletype", + "source_file": "admin_panel/models/finance.py", + "source_location": "L8" + }, + { + "id": "admin_panel_models_finance_sarresid", + "label": "Sarresid", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "sarresid", + "source_file": "admin_panel/models/finance.py", + "source_location": "L33" + }, + { + "id": "admin_panel_migrations_0029_alter_article_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 32, + "community_name": "0029_alter_article_options.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0034_alter_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 33, + "community_name": "0034_alter_article_sarresid.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0005_auto_20220121_2054_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 34, + "community_name": "0005_auto_20220121_2054.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0035_alter_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 35, + "community_name": "0035_alter_article_sarresid.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0009_remove_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 36, + "community_name": "0009_remove_storeroom_user.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0010_auto_20220122_1546_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 37, + "community_name": "0010_auto_20220122_1546.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0040_customer_laghv_bazdid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 38, + "community_name": "0040_customer_laghv_bazdid.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0043_sarresid_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 39, + "community_name": "0043_sarresid_user.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0048_alter_productinstore_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 40, + "community_name": "0048_alter_productinstore_options.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0032_article_paystatus_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 41, + "community_name": "0032_article_paystatus.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0033_article_nahvepardakht_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 42, + "community_name": "0033_article_nahvepardakht.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0044_sarresid_desc_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 45, + "community_name": "0044_sarresid_desc.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L6" + }, + { + "id": "admin_panel_models_customers_customer", + "label": "Customer", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "customer", + "source_file": "admin_panel/models/customers.py", + "source_location": "L4" + }, + { + "id": "admin_panel_models_customers_customer_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models/customers.py", + "source_location": "L5" + }, + { + "id": "admin_panel_models_customers_phonenumber", + "label": "PhoneNumber", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "phonenumber", + "source_file": "admin_panel/models/customers.py", + "source_location": "L36" + }, + { + "id": "admin_panel_views_helpers_inventoryexception", + "label": "InventoryException", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "inventoryexception", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L12" + }, + { + "id": "admin_panel_migrations_0001_initial_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0007_productinstore_factor_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0008_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0012_visitqueue_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0016_factor_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0018_alter_factoriteam_product_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0019_article_articletype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0024_action_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0036_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0038_auto_20240213_1735_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0046_auto_20260624_1818_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0054_auto_20260715_2250_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0011_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0015_auto_20220124_0858_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0026_auto_20220209_1924_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0042_article_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0045_auto_20260610_1421_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0050_storetransferrequest_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0051_auto_20260705_1356_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0052_storeroomowner_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0053_storeroom_owners_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L7" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests", + "label": "ModelsPackageContractTests", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": "modelspackagecontracttests", + "source_file": "tests/test_models_contract.py", + "source_location": "L40" + }, + { + "id": "admin_panel_models_store_storeroom_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/store.py", + "source_location": "L29" + }, + { + "id": "admin_panel_models_store_storetransferrequest_clean", + "label": ".clean()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".clean()", + "source_file": "admin_panel/models/store.py", + "source_location": "L143" + }, + { + "id": "admin_panel_models_store_storetransferrequest_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/store.py", + "source_location": "L140" + }, + { + "id": "admin_panel_services_approve_transfer_request", + "label": "approve_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "approve_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L98" + }, + { + "id": "admin_panel_services_cancel_transfer_request", + "label": "cancel_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "cancel_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L186" + }, + { + "id": "admin_panel_services_check_source_store_permission", + "label": "_check_source_store_permission()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "_check_source_store_permission()", + "source_file": "admin_panel/services.py", + "source_location": "L29" + }, + { + "id": "admin_panel_services_check_target_store_permission", + "label": "_check_target_store_permission()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "_check_target_store_permission()", + "source_file": "admin_panel/services.py", + "source_location": "L19" + }, + { + "id": "admin_panel_services_create_transfer_request", + "label": "create_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "create_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L55" + }, + { + "id": "admin_panel_services_get_product_current_stock", + "label": "get_product_current_stock()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "get_product_current_stock()", + "source_file": "admin_panel/services.py", + "source_location": "L39" + }, + { + "id": "admin_panel_services_reject_transfer_request", + "label": "reject_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "reject_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L159" + }, + { + "id": "admin_panel_views_helpers_safe_int", + "label": "_safe_int()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "_safe_int()", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L17" + }, + { + "id": "admin_panel_views_store_newoperation", + "label": "newOperation()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "newoperation()", + "source_file": "admin_panel/views/store.py", + "source_location": "L153" + }, + { + "id": "admin_panel_views_store_newstore", + "label": "newStore()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "newstore()", + "source_file": "admin_panel/views/store.py", + "source_location": "L251" + }, + { + "id": "admin_panel_views_store_operation", + "label": "operation()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "operation()", + "source_file": "admin_panel/views/store.py", + "source_location": "L315" + }, + { + "id": "admin_panel_views_store_operationproduct", + "label": "operationProduct()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "operationproduct()", + "source_file": "admin_panel/views/store.py", + "source_location": "L133" + }, + { + "id": "admin_panel_views_store_operations", + "label": "operations()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "operations()", + "source_file": "admin_panel/views/store.py", + "source_location": "L104" + }, + { + "id": "admin_panel_views_store_process_transfer_action", + "label": "process_transfer_action()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "process_transfer_action()", + "source_file": "admin_panel/views/store.py", + "source_location": "L203" + }, + { + "id": "admin_panel_views_store_productadd", + "label": "productAdd()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "productadd()", + "source_file": "admin_panel/views/store.py", + "source_location": "L262" + }, + { + "id": "admin_panel_views_store_productdel", + "label": "productDel()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "productdel()", + "source_file": "admin_panel/views/store.py", + "source_location": "L308" + }, + { + "id": "admin_panel_views_store_productedit", + "label": "productEdit()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "productedit()", + "source_file": "admin_panel/views/store.py", + "source_location": "L289" + }, + { + "id": "admin_panel_views_store_productmojodi", + "label": "productMojodi()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "productmojodi()", + "source_file": "admin_panel/views/store.py", + "source_location": "L435" + }, + { + "id": "admin_panel_views_store_store", + "label": "store()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "store()", + "source_file": "admin_panel/views/store.py", + "source_location": "L30" + }, + { + "id": "admin_panel_views_store_store_transfers", + "label": "store_transfers()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "store_transfers()", + "source_file": "admin_panel/views/store.py", + "source_location": "L164" + }, + { + "id": "admin_panel_views_store_stores", + "label": "stores()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "stores()", + "source_file": "admin_panel/views/store.py", + "source_location": "L19" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "label": ".test_approval_permission_denied_for_non_target_member()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_approval_permission_denied_for_non_target_member()", + "source_file": "tests/test_inventory.py", + "source_location": "L194" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "label": ".test_approve_moves_stock_and_links_transactions()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_approve_moves_stock_and_links_transactions()", + "source_file": "tests/test_inventory.py", + "source_location": "L142" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_cancel_by_requester", + "label": ".test_cancel_by_requester()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_cancel_by_requester()", + "source_file": "tests/test_inventory.py", + "source_location": "L178" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_create_rejects_insufficient_stock", + "label": ".test_create_rejects_insufficient_stock()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_create_rejects_insufficient_stock()", + "source_file": "tests/test_inventory.py", + "source_location": "L121" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_create_rejects_non_positive_quantity", + "label": ".test_create_rejects_non_positive_quantity()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_create_rejects_non_positive_quantity()", + "source_file": "tests/test_inventory.py", + "source_location": "L135" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_create_rejects_same_store", + "label": ".test_create_rejects_same_store()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_create_rejects_same_store()", + "source_file": "tests/test_inventory.py", + "source_location": "L128" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_create_transfer_request_pending", + "label": ".test_create_transfer_request_pending()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_create_transfer_request_pending()", + "source_file": "tests/test_inventory.py", + "source_location": "L108" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_double_approval_is_rejected", + "label": ".test_double_approval_is_rejected()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_double_approval_is_rejected()", + "source_file": "tests/test_inventory.py", + "source_location": "L156" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_permission_denied_for_outsider", + "label": ".test_permission_denied_for_outsider()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_permission_denied_for_outsider()", + "source_file": "tests/test_inventory.py", + "source_location": "L186" + }, + { + "id": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "label": ".test_reject_keeps_stock_untouched()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": ".test_reject_keeps_stock_untouched()", + "source_file": "tests/test_inventory.py", + "source_location": "L166" + }, + { + "id": "admin_panel_context_processor_dashboxdata", + "label": "dashBoxData()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "dashboxdata()", + "source_file": "admin_panel/context_processor.py", + "source_location": "L7" + }, + { + "id": "admin_panel_templatetags_remove_q_p_remove_query_param", + "label": "remove_query_param()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "remove_query_param()", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L6" + }, + { + "id": "check_finance_check_financial_discrepancy", + "label": "check_financial_discrepancy()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "check_financial_discrepancy()", + "source_file": "check_finance.py", + "source_location": "L13" + }, + { + "id": "ghost_hunter_run_360_audit", + "label": "run_360_audit()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "run_360_audit()", + "source_file": "ghost_hunter.py", + "source_location": "L12" + }, + { + "id": "manage_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "main()", + "source_file": "manage.py", + "source_location": "L7" + }, + { + "id": "project_tree_counts_add_file", + "label": ".add_file()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": ".add_file()", + "source_file": "project_tree.py", + "source_location": "L76" + }, + { + "id": "project_tree_format_header", + "label": "format_header()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "format_header()", + "source_file": "project_tree.py", + "source_location": "L175" + }, + { + "id": "project_tree_generate_snapshot", + "label": "generate_snapshot()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "generate_snapshot()", + "source_file": "project_tree.py", + "source_location": "L191" + }, + { + "id": "project_tree_is_excluded_file", + "label": "is_excluded_file()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "is_excluded_file()", + "source_file": "project_tree.py", + "source_location": "L102" + }, + { + "id": "project_tree_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "main()", + "source_file": "project_tree.py", + "source_location": "L241" + }, + { + "id": "project_tree_non_negative_integer", + "label": "non_negative_integer()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "non_negative_integer()", + "source_file": "project_tree.py", + "source_location": "L214" + }, + { + "id": "project_tree_normalized_path", + "label": "normalized_path()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "normalized_path()", + "source_file": "project_tree.py", + "source_location": "L96" + }, + { + "id": "project_tree_parse_args", + "label": "parse_args()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "parse_args()", + "source_file": "project_tree.py", + "source_location": "L224" + }, + { + "id": "project_tree_sorted_entries", + "label": "sorted_entries()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "sorted_entries()", + "source_file": "project_tree.py", + "source_location": "L109" + }, + { + "id": "project_tree_warn", + "label": "warn()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "warn()", + "source_file": "project_tree.py", + "source_location": "L90" + }, + { + "id": "project_tree_write_tree", + "label": "write_tree()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "write_tree()", + "source_file": "project_tree.py", + "source_location": "L138" + }, + { + "id": "project_tree_write_tree_visit", + "label": "visit()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "visit()", + "source_file": "project_tree.py", + "source_location": "L150" + }, + { + "id": "reconciliation_tool_run_audit", + "label": "run_audit()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "run_audit()", + "source_file": "reconciliation_tool.py", + "source_location": "L21" + }, + { + "id": "tests_test_urls_contract_urlcontracttests_all_names", + "label": "._all_names()", + "_callable": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": "._all_names()", + "source_file": "tests/test_urls_contract.py", + "source_location": "L119" + }, + { + "id": "tests_test_urls_contract_urlcontracttests_test_all_view_callables_are_importable", + "label": ".test_all_view_callables_are_importable()", + "_callable": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": ".test_all_view_callables_are_importable()", + "source_file": "tests/test_urls_contract.py", + "source_location": "L145" + }, + { + "id": "tests_test_urls_contract_urlcontracttests_test_every_url_reverses", + "label": ".test_every_url_reverses()", + "_callable": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": ".test_every_url_reverses()", + "source_file": "tests/test_urls_contract.py", + "source_location": "L136" + }, + { + "id": "tests_test_urls_contract_urlcontracttests_test_url_name_snapshot_unchanged", + "label": ".test_url_name_snapshot_unchanged()", + "_callable": true, + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": ".test_url_name_snapshot_unchanged()", + "source_file": "tests/test_urls_contract.py", + "source_location": "L123" + }, + { + "id": "admin_panel_models_system_cachetable_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 104, + "community_name": "system.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/system.py", + "source_location": "L8" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_endpoints", + "label": "._endpoints()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "ViewSmokeTests", + "file_type": "code", + "norm_label": "._endpoints()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L83" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_now_ms", + "label": "._now_ms()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "ViewSmokeTests", + "file_type": "code", + "norm_label": "._now_ms()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L77" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "ViewSmokeTests", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L70" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_test_every_endpoint_responds_without_server_error", + "label": ".test_every_endpoint_responds_without_server_error()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "ViewSmokeTests", + "file_type": "code", + "norm_label": ".test_every_endpoint_responds_without_server_error()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L207" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_url", + "label": "._url()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "ViewSmokeTests", + "file_type": "code", + "norm_label": "._url()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L80" + }, + { + "id": "admin_panel_models_factors_factor_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models/factors.py", + "source_location": "L45" + }, + { + "id": "admin_panel_models_users_userprofile_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/users.py", + "source_location": "L17" + }, + { + "id": "admin_panel_views_actions_actionlist", + "label": "ActionList()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlist()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L98" + }, + { + "id": "admin_panel_views_actions_actionlistall", + "label": "ActionListAll()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlistall()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L155" + }, + { + "id": "admin_panel_views_actions_actionlisttoday", + "label": "ActionListToday()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlisttoday()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L162" + }, + { + "id": "admin_panel_views_actions_actionlistuser", + "label": "ActionListUser()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlistuser()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L105" + }, + { + "id": "admin_panel_views_actions_actionlistusertoday", + "label": "ActionListUserToday()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "actionlistusertoday()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L174" + }, + { + "id": "admin_panel_views_actions_customeraction", + "label": "customerAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "customeraction()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L13" + }, + { + "id": "admin_panel_views_actions_customereditaction", + "label": "customerEditAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "customereditaction()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L112" + }, + { + "id": "admin_panel_views_actions_customernazar", + "label": "customerNazar()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "customernazar()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L49" + }, + { + "id": "admin_panel_views_actions_customernewaction", + "label": "customerNewAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "customernewaction()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L57" + }, + { + "id": "admin_panel_views_actions_rezayat", + "label": "rezayat()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "rezayat()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L201" + }, + { + "id": "admin_panel_views_actions_rezayatedit", + "label": "rezayatEdit()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "rezayatedit()", + "source_file": "admin_panel/views/actions.py", + "source_location": "L233" + }, + { + "id": "admin_panel_views_factors_newfactor", + "label": "newFactor()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "newfactor()", + "source_file": "admin_panel/views/factors.py", + "source_location": "L19" + }, + { + "id": "admin_panel_admin_storeroomadmin_get_owners_count", + "label": ".get_owners_count()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": ".get_owners_count()", + "source_file": "admin_panel/admin.py", + "source_location": "L74" + }, + { + "id": "tests_factories_current_stock", + "label": "current_stock()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "current_stock()", + "source_file": "tests/factories.py", + "source_location": "L91" + }, + { + "id": "tests_factories_make_category", + "label": "make_category()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_category()", + "source_file": "tests/factories.py", + "source_location": "L65" + }, + { + "id": "tests_factories_make_customer", + "label": "make_customer()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_customer()", + "source_file": "tests/factories.py", + "source_location": "L99" + }, + { + "id": "tests_factories_make_product", + "label": "make_product()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_product()", + "source_file": "tests/factories.py", + "source_location": "L69" + }, + { + "id": "tests_factories_make_store", + "label": "make_store()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_store()", + "source_file": "tests/factories.py", + "source_location": "L46" + }, + { + "id": "tests_factories_make_user", + "label": "make_user()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "make_user()", + "source_file": "tests/factories.py", + "source_location": "L21" + }, + { + "id": "tests_factories_next", + "label": "_next()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "_next()", + "source_file": "tests/factories.py", + "source_location": "L17" + }, + { + "id": "tests_factories_stock_in", + "label": "stock_in()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "stock_in()", + "source_file": "tests/factories.py", + "source_location": "L78" + }, + { + "id": "tests_test_customers_customercrudtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_customers.py", + "source_location": "L14" + }, + { + "id": "tests_test_customers_customercrudtests_test_add_customer_creates_phones", + "label": ".test_add_customer_creates_phones()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_add_customer_creates_phones()", + "source_file": "tests/test_customers.py", + "source_location": "L18" + }, + { + "id": "tests_test_customers_customercrudtests_test_edit_customer_replaces_phones", + "label": ".test_edit_customer_replaces_phones()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_edit_customer_replaces_phones()", + "source_file": "tests/test_customers.py", + "source_location": "L36" + }, + { + "id": "tests_test_customers_customerdeleteguardtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_customers.py", + "source_location": "L61" + }, + { + "id": "tests_test_customers_customerdeleteguardtests_test_customer_with_financial_history_is_never_deleted", + "label": ".test_customer_with_financial_history_is_never_deleted()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_customer_with_financial_history_is_never_deleted()", + "source_file": "tests/test_customers.py", + "source_location": "L75" + }, + { + "id": "tests_test_customers_customerdeleteguardtests_test_customer_without_history_is_deactivated", + "label": ".test_customer_without_history_is_deactivated()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_customer_without_history_is_deactivated()", + "source_file": "tests/test_customers.py", + "source_location": "L65" + }, + { + "id": "tests_test_factors_factorsoftdeletetests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_factors.py", + "source_location": "L17" + }, + { + "id": "tests_test_factors_factorsoftdeletetests_test_delete_is_soft", + "label": ".test_delete_is_soft()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_delete_is_soft()", + "source_file": "tests/test_factors.py", + "source_location": "L24" + }, + { + "id": "tests_test_factors_factorsoftdeletetests_test_instore_transaction_protects_its_factor", + "label": ".test_instore_transaction_protects_its_factor()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_instore_transaction_protects_its_factor()", + "source_file": "tests/test_factors.py", + "source_location": "L33" + }, + { + "id": "tests_test_factors_newfactor2viewtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_factors.py", + "source_location": "L52" + }, + { + "id": "tests_test_factors_newfactor2viewtests_test_new_factor2_creates_factor_article_and_stock_out", + "label": ".test_new_factor2_creates_factor_article_and_stock_out()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_new_factor2_creates_factor_article_and_stock_out()", + "source_file": "tests/test_factors.py", + "source_location": "L59" + }, + { + "id": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_get", + "label": ".test_new_factor2_rejects_get()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_new_factor2_rejects_get()", + "source_file": "tests/test_factors.py", + "source_location": "L109" + }, + { + "id": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_oversell_without_creating_factor", + "label": ".test_new_factor2_rejects_oversell_without_creating_factor()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_new_factor2_rejects_oversell_without_creating_factor()", + "source_file": "tests/test_factors.py", + "source_location": "L88" + }, + { + "id": "tests_test_inventory_productinstoremathtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_inventory.py", + "source_location": "L21" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_deleting_a_row_creates_history_and_reduces_stock", + "label": ".test_deleting_a_row_creates_history_and_reduces_stock()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_deleting_a_row_creates_history_and_reduces_stock()", + "source_file": "tests/test_inventory.py", + "source_location": "L72" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_editing_a_row_updates_stock_and_history", + "label": ".test_editing_a_row_updates_stock_and_history()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_editing_a_row_updates_stock_and_history()", + "source_file": "tests/test_inventory.py", + "source_location": "L55" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_garbage_numeric_values_are_coerced_to_zero", + "label": ".test_garbage_numeric_values_are_coerced_to_zero()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_garbage_numeric_values_are_coerced_to_zero()", + "source_file": "tests/test_inventory.py", + "source_location": "L89" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_initial_in_records_history_and_stock", + "label": ".test_initial_in_records_history_and_stock()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_initial_in_records_history_and_stock()", + "source_file": "tests/test_inventory.py", + "source_location": "L25" + }, + { + "id": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "label": ".test_multiple_movements_accumulate_correctly()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".test_multiple_movements_accumulate_correctly()", + "source_file": "tests/test_inventory.py", + "source_location": "L37" + }, + { + "id": "tests_test_inventory_transferworkflowtests_setup", + "label": ".setUp()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setup()", + "source_file": "tests/test_inventory.py", + "source_location": "L101" + }, + { + "id": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "label": ".setUpTestData()", + "_callable": true, + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": ".setuptestdata()", + "source_file": "tests/test_view_smoke.py", + "source_location": "L33" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_add_arguments", + "label": ".add_arguments()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": ".add_arguments()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L15" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "label": "._execute_by_immediate_chunks()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "._execute_by_immediate_chunks()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L88" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "label": "._execute_hybrid_migration()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "._execute_hybrid_migration()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L114" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L28" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "label": "._process_single_chunk()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "._process_single_chunk()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L122" + }, + { + "id": "admin_panel_management_commands_send_daily_report_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L15" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "label": ".cleanup_resources()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": ".cleanup_resources()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L157" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L37" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "label": ".handle_critical_failure()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": ".handle_critical_failure()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L173" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle_progress_callback", + "label": "progress_callback()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "progress_callback()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L82" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L20" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "label": "._signal_handler()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "._signal_handler()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L29" + }, + { + "id": "admin_panel_models_products_product_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/products.py", + "source_location": "L24" + }, + { + "id": "admin_panel_models_products_productcategory_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/products.py", + "source_location": "L8" + }, + { + "id": "admin_panel_models_products_productinstore_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models/products.py", + "source_location": "L120" + }, + { + "id": "admin_panel_models_products_productinstore_save", + "label": ".save()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".save()", + "source_file": "admin_panel/models/products.py", + "source_location": "L72" + }, + { + "id": "admin_panel_models_products_productinstore_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/products.py", + "source_location": "L68" + }, + { + "id": "admin_panel_models_store_productstockhistory_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/store.py", + "source_location": "L61" + }, + { + "id": "admin_views_index", + "label": "index()", + "_callable": true, + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "code", + "norm_label": "index()", + "source_file": "admin/views.py", + "source_location": "L7" + }, + { + "id": "admin_panel_views_finance_addsarresid", + "label": "addSarresid()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "addsarresid()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L772" + }, + { + "id": "admin_panel_views_finance_bedehi", + "label": "bedehi()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "bedehi()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L518" + }, + { + "id": "admin_panel_views_finance_bedehikhadamat", + "label": "bedehiKhadamat()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "bedehikhadamat()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L659" + }, + { + "id": "admin_panel_views_finance_bedehinasb", + "label": "bedehiNasb()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "bedehinasb()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L676" + }, + { + "id": "admin_panel_views_finance_financial_dashboard", + "label": "financial_dashboard()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "financial_dashboard()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L318" + }, + { + "id": "admin_panel_views_finance_hesabdari", + "label": "hesabdari()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "hesabdari()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L538" + }, + { + "id": "admin_panel_views_finance_hesabdari_checkpass", + "label": "hesabdari_checkPass()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "hesabdari_checkpass()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L594" + }, + { + "id": "admin_panel_views_finance_hesabdari_checkpassfail", + "label": "hesabdari_checkPassFail()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "hesabdari_checkpassfail()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L614" + }, + { + "id": "admin_panel_views_finance_hesabdari_residnashone", + "label": "hesabdari_residnashone()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "hesabdari_residnashone()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L638" + }, + { + "id": "admin_panel_views_finance_inventory_movements_report", + "label": "inventory_movements_report()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "inventory_movements_report()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L235" + }, + { + "id": "admin_panel_views_finance_pardakhtnesiye", + "label": "pardakhtNesiye()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "pardakhtnesiye()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L864" + }, + { + "id": "admin_panel_views_finance_passcheck", + "label": "passCheck()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "passcheck()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L692" + }, + { + "id": "admin_panel_views_finance_report", + "label": "report()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "report()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L24" + }, + { + "id": "admin_panel_views_finance_report_debtors_no_vosol", + "label": "report_debtors_no_vosol()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "report_debtors_no_vosol()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L124" + }, + { + "id": "admin_panel_views_finance_rezayat_dashboard", + "label": "rezayat_dashboard()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "rezayat_dashboard()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L927" + }, + { + "id": "admin_panel_views_finance_update_check_info", + "label": "update_check_info()", + "_callable": true, + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "update_check_info()", + "source_file": "admin_panel/views/finance.py", + "source_location": "L723" + }, + { + "id": "admin_panel_models_customers_customer_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models/customers.py", + "source_location": "L30" + }, + { + "id": "admin_panel_models_customers_customer_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/customers.py", + "source_location": "L26" + }, + { + "id": "admin_panel_models_customers_phonenumber_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models/customers.py", + "source_location": "L41" + }, + { + "id": "admin_panel_templatetags_custom_tags_has_group", + "label": "has_group()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "has_group()", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L11" + }, + { + "id": "admin_panel_templatetags_custom_tags_tojalali", + "label": "toJalali()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "tojalali()", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L7" + }, + { + "id": "admin_panel_views_auth_p_login", + "label": "p_login()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "p_login()", + "source_file": "admin_panel/views/auth.py", + "source_location": "L5" + }, + { + "id": "admin_panel_views_auth_p_logout", + "label": "p_logout()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "p_logout()", + "source_file": "admin_panel/views/auth.py", + "source_location": "L27" + }, + { + "id": "admin_panel_views_customers_actionjson", + "label": "ActionJson()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "actionjson()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L204" + }, + { + "id": "admin_panel_views_customers_customer", + "label": "customer()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customer()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L74" + }, + { + "id": "admin_panel_views_customers_customerdel", + "label": "customerDel()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerdel()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L367" + }, + { + "id": "admin_panel_views_customers_customeredit", + "label": "customerEdit()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customeredit()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L262" + }, + { + "id": "admin_panel_views_customers_customerfactor", + "label": "customerFactor()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerfactor()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L185" + }, + { + "id": "admin_panel_views_customers_customerfactors", + "label": "customerFactors()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerfactors()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L120" + }, + { + "id": "admin_panel_views_customers_customerhesabdari", + "label": "customerHesabdari()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerhesabdari()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L415" + }, + { + "id": "admin_panel_views_customers_customerhesabdariadd", + "label": "customerHesabdariAdd()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerhesabdariadd()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L442" + }, + { + "id": "admin_panel_views_customers_customerjson", + "label": "CustomerJson()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerjson()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L211" + }, + { + "id": "admin_panel_views_customers_customernew", + "label": "customerNew()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customernew()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L85" + }, + { + "id": "admin_panel_views_customers_customernew2", + "label": "customerNew2()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customernew2()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L97" + }, + { + "id": "admin_panel_views_customers_customers", + "label": "customers()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customers()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L20" + }, + { + "id": "admin_panel_views_customers_customersadd", + "label": "customersAdd()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customersadd()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L220" + }, + { + "id": "admin_panel_views_customers_customerssearch", + "label": "customersSearch()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "customerssearch()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L50" + }, + { + "id": "admin_panel_views_customers_entezar", + "label": "entezar()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "entezar()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L305" + }, + { + "id": "admin_panel_views_customers_productsjson", + "label": "productsJson()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "productsjson()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L197" + }, + { + "id": "admin_panel_views_customers_sarresidh", + "label": "sarresidh()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "sarresidh()", + "source_file": "admin_panel/views/customers.py", + "source_location": "L431" + }, + { + "id": "admin_panel_views_factors_factordel", + "label": "FactorDel()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "factordel()", + "source_file": "admin_panel/views/factors.py", + "source_location": "L368" + }, + { + "id": "admin_panel_views_factors_newfactor2", + "label": "newFactor2()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "newfactor2()", + "source_file": "admin_panel/views/factors.py", + "source_location": "L165" + }, + { + "id": "admin_panel_views_helpers_parse_jalali_date", + "label": "_parse_jalali_date()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "_parse_jalali_date()", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L28" + }, + { + "id": "admin_panel_views_helpers_parse_timestamp", + "label": "_parse_timestamp()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "_parse_timestamp()", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L41" + }, + { + "id": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "label": "api_check_sabt_inquiry()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "api_check_sabt_inquiry()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L251" + }, + { + "id": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "label": "api_check_status_inquiry()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "api_check_status_inquiry()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L228" + }, + { + "id": "admin_panel_views_cheque_inquiry_parse_cheque_result_html", + "label": "parse_cheque_result_html()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "parse_cheque_result_html()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L67" + }, + { + "id": "admin_panel_views_cheque_inquiry_run_bpi_cheque_inquiry_logic", + "label": "run_bpi_cheque_inquiry_logic()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "run_bpi_cheque_inquiry_logic()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L185" + }, + { + "id": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "label": "run_cbi_sayad_inquiry_logic()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "run_cbi_sayad_inquiry_logic()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L87" + }, + { + "id": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "label": "solve_base64_captcha()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "solve_base64_captcha()", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L22" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_all_models_importable_from_package", + "label": ".test_all_models_importable_from_package()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_all_models_importable_from_package()", + "source_file": "tests/test_models_contract.py", + "source_location": "L42" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_db_table_names_are_unchanged_defaults", + "label": ".test_db_table_names_are_unchanged_defaults()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_db_table_names_are_unchanged_defaults()", + "source_file": "tests/test_models_contract.py", + "source_location": "L57" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_models_are_registered_under_admin_panel_app", + "label": ".test_models_are_registered_under_admin_panel_app()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_models_are_registered_under_admin_panel_app()", + "source_file": "tests/test_models_contract.py", + "source_location": "L49" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_models_package_has_no_duplicate_registration", + "label": ".test_models_package_has_no_duplicate_registration()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_models_package_has_no_duplicate_registration()", + "source_file": "tests/test_models_contract.py", + "source_location": "L78" + }, + { + "id": "tests_test_models_contract_modelspackagecontracttests_test_star_import_leak_names_still_present", + "label": ".test_star_import_leak_names_still_present()", + "_callable": true, + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": ".test_star_import_leak_names_still_present()", + "source_file": "tests/test_models_contract.py", + "source_location": "L66" + }, + { + "id": "abstractbaseuser", + "label": "AbstractBaseUser", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "abstractbaseuser", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_models_store", + "label": "models/store.py", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "models/store.py", + "source_file": "admin_panel/models/store.py", + "source_location": "L1" + }, + { + "id": "admin_panel_services", + "label": "services.py", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "services.py", + "source_file": "admin_panel/services.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_store", + "label": "views/store.py", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "views/store.py", + "source_file": "admin_panel/views/store.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_store_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_store_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_store_py_require_post", + "label": "require_POST", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "require_post", + "source_file": "", + "source_location": "" + }, + { + "id": "atomic", + "label": "atomic", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "atomic", + "source_file": "", + "source_location": "" + }, + { + "id": "product", + "label": "Product", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "product", + "source_file": "", + "source_location": "" + }, + { + "id": "storeroom", + "label": "StoreRoom", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "storeroom", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_inventory_py_testcase", + "label": "TestCase", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "code", + "norm_label": "testcase", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_models_store_rationale_34", + "label": "\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0648\u0627\u0633\u0637\u060c \u067e\u0634\u062a \u0635\u062d\u0646\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0641\u0642\u0637 \u0642\u0627\u0646\u0648\u0646 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f. \u06a9\u062f\u0647\u0627\u06cc\u2026", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0648\u0627\u0633\u0637\u060c \u067e\u0634\u062a \u0635\u062d\u0646\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0641\u0642\u0637 \u0642\u0627\u0646\u0648\u0646 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f. \u06a9\u062f\u0647\u0627\u06cc...", + "source_file": "admin_panel/models/store.py", + "source_location": "L34" + }, + { + "id": "admin_panel_services_rationale_160", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L160" + }, + { + "id": "admin_panel_services_rationale_187", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u0627\u0646\u0635\u0631\u0627\u0641 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0648\u0633\u0637 \u0627\u06cc\u062c\u0627\u062f\u06a9\u0646\u0646\u062f\u0647 \u06cc\u0627 \u0645\u0633\u0626\u0648\u0644 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u0627\u0646\u0635\u0631\u0627\u0641 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0648\u0633\u0637 \u0627\u06cc\u062c\u0627\u062f\u06a9\u0646\u0646\u062f\u0647 \u06cc\u0627 \u0645\u0633\u064a\u0648\u0644 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "source_file": "admin_panel/services.py", + "source_location": "L187" + }, + { + "id": "admin_panel_services_rationale_20", + "label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L20" + }, + { + "id": "admin_panel_services_rationale_30", + "label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "source_file": "admin_panel/services.py", + "source_location": "L30" + }, + { + "id": "admin_panel_services_rationale_40", + "label": "\u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 \u0645\u0634\u062e\u0635. \u067e\u0627\u0631\u0627\u0645\u062a\u0631 lock_for_update \u062f\u0631 \u0632\u0645\u0627\u0646\u2026", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 \u0645\u0634\u062e\u0635. \u067e\u0627\u0631\u0627\u0645\u062a\u0631 lock_for_update \u062f\u0631 \u0632\u0645\u0627\u0646...", + "source_file": "admin_panel/services.py", + "source_location": "L40" + }, + { + "id": "admin_panel_services_rationale_64", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u062b\u0628\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u062a\u0642\u0627\u0644 \u062c\u062f\u06cc\u062f", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u062b\u0628\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u062a\u0642\u0627\u0644 \u062c\u062f\u06cc\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L64" + }, + { + "id": "admin_panel_services_rationale_99", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u062a\u0627\u06cc\u06cc\u062f \u0627\u0646\u062a\u0642\u0627\u0644: \u0642\u0641\u0644 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631\u060c \u06a9\u0633\u0631 \u0627\u0632 \u0645\u0628\u062f\u0627\u060c \u0648\u0631\u0648\u062f \u0628\u0647\u2026", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u062a\u0627\u06cc\u06cc\u062f \u0627\u0646\u062a\u0642\u0627\u0644: \u0642\u0641\u0644 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631\u060c \u06a9\u0633\u0631 \u0627\u0632 \u0645\u0628\u062f\u0627\u060c \u0648\u0631\u0648\u062f \u0628\u0647...", + "source_file": "admin_panel/services.py", + "source_location": "L99" + }, + { + "id": "admin_panel_views_helpers_rationale_18", + "label": "\u062a\u0627\u0628\u0639 \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0639\u062f\u062f", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u062a\u0627\u0628\u0639 \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0639\u062f\u062f", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L18" + }, + { + "id": "admin_panel_views_store_rationale_165", + "label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0648 \u06a9\u0627\u0631\u062a\u0627\u0628\u0644 \u062c\u0627\u0645\u0639 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0648 \u06a9\u0627\u0631\u062a\u0627\u0628\u0644 \u062c\u0627\u0645\u0639 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631", + "source_file": "admin_panel/views/store.py", + "source_location": "L165" + }, + { + "id": "admin_panel_views_store_rationale_204", + "label": "\u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0645\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u0628\u0627\u0631\u062f\u0627\u0631 (\u062a\u0627\u06cc\u06cc\u062f\u060c \u0631\u062f\u060c \u0627\u0646\u0635\u0631\u0627\u0641) \u0628\u0627 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0627\u062a\u0645\u06cc\u06a9", + "_origin": "ast", + "community": 0, + "community_name": "views/store.py", + "file_type": "rationale", + "norm_label": "\u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0645\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u0628\u0627\u0631\u062f\u0627\u0631 (\u062a\u0627\u06cc\u06cc\u062f\u060c \u0631\u062f\u060c \u0627\u0646\u0635\u0631\u0627\u0641) \u0628\u0627 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0627\u062a\u0645\u06cc\u06a9", + "source_file": "admin_panel/views/store.py", + "source_location": "L204" + }, + { + "id": "admin_panel_context_processor", + "label": "context_processor.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "context_processor.py", + "source_file": "admin_panel/context_processor.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_remove_q_p", + "label": "remove_q_p.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "remove_q_p.py", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L1" + }, + { + "id": "check_finance", + "label": "check_finance.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "check_finance.py", + "source_file": "check_finance.py", + "source_location": "L1" + }, + { + "id": "direntry", + "label": "DirEntry", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "direntry", + "source_file": "", + "source_location": "" + }, + { + "id": "entrypoint", + "label": "entrypoint.sh", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "metadata": { + "language": "bash", + "kind": "file" + }, + "norm_label": "entrypoint.sh", + "source_file": "entrypoint.sh", + "source_location": "L1" + }, + { + "id": "entrypoint_sh__entry", + "label": "entrypoint.sh script", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "metadata": { + "language": "bash", + "kind": "bash_entrypoint" + }, + "norm_label": "entrypoint.sh script", + "source_file": "entrypoint.sh", + "source_location": "L1" + }, + { + "id": "filter", + "label": "filter", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "filter", + "source_file": "", + "source_location": "" + }, + { + "id": "ghost_hunter", + "label": "ghost_hunter.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "ghost_hunter.py", + "source_file": "ghost_hunter.py", + "source_location": "L1" + }, + { + "id": "khatibi_asgi", + "label": "asgi.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "asgi.py", + "source_file": "khatibi/asgi.py", + "source_location": "L1" + }, + { + "id": "khatibi_wsgi", + "label": "wsgi.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "wsgi.py", + "source_file": "khatibi/wsgi.py", + "source_location": "L1" + }, + { + "id": "manage", + "label": "manage.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "manage.py", + "source_file": "manage.py", + "source_location": "L1" + }, + { + "id": "namespace", + "label": "Namespace", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "namespace", + "source_file": "", + "source_location": "" + }, + { + "id": "path", + "label": "Path", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "path", + "source_file": "", + "source_location": "" + }, + { + "id": "project_tree", + "label": "project_tree.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "project_tree.py", + "source_file": "project_tree.py", + "source_location": "L1" + }, + { + "id": "reconciliation_tool", + "label": "reconciliation_tool.py", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "reconciliation_tool.py", + "source_file": "reconciliation_tool.py", + "source_location": "L1" + }, + { + "id": "textio", + "label": "TextIO", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "code", + "norm_label": "textio", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_templatetags_remove_q_p_rationale_7", + "label": "Remove a specific query parameter from a URL.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "remove a specific query parameter from a url.", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L7" + }, + { + "id": "khatibi_asgi_rationale_1", + "label": "ASGI config for khatibi project. It exposes the ASGI callable as a module-level\u2026", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "asgi config for khatibi project. it exposes the asgi callable as a module-level...", + "source_file": "khatibi/asgi.py", + "source_location": "L1" + }, + { + "id": "khatibi_wsgi_rationale_1", + "label": "WSGI config for khatibi project. It exposes the WSGI callable as a module-level\u2026", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "wsgi config for khatibi project. it exposes the wsgi callable as a module-level...", + "source_file": "khatibi/wsgi.py", + "source_location": "L1" + }, + { + "id": "manage_rationale_2", + "label": "Django's command-line utility for administrative tasks.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "django's command-line utility for administrative tasks.", + "source_file": "manage.py", + "source_location": "L2" + }, + { + "id": "manage_rationale_8", + "label": "Run administrative tasks.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "run administrative tasks.", + "source_file": "manage.py", + "source_location": "L8" + }, + { + "id": "project_tree_rationale_1", + "label": "Create a safe, deterministic project tree snapshot. Usage: python\u2026", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "create a safe, deterministic project tree snapshot. usage: python...", + "source_file": "project_tree.py", + "source_location": "L1" + }, + { + "id": "project_tree_rationale_110", + "label": "Scan one directory, pruning excluded directories before recursion.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "scan one directory, pruning excluded directories before recursion.", + "source_file": "project_tree.py", + "source_location": "L110" + }, + { + "id": "project_tree_rationale_145", + "label": "Write the tree depth-first while retaining only one directory level.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "write the tree depth-first while retaining only one directory level.", + "source_file": "project_tree.py", + "source_location": "L145" + }, + { + "id": "project_tree_rationale_176", + "label": "Build a fixed-width header so it can be updated after streaming the tree.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "build a fixed-width header so it can be updated after streaming the tree.", + "source_file": "project_tree.py", + "source_location": "L176" + }, + { + "id": "project_tree_rationale_192", + "label": "Create the requested output file; all other filesystem access is read-only.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "create the requested output file; all other filesystem access is read-only.", + "source_file": "project_tree.py", + "source_location": "L192" + }, + { + "id": "project_tree_rationale_67", + "label": "Counters for entries included in the rendered snapshot.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "counters for entries included in the rendered snapshot.", + "source_file": "project_tree.py", + "source_location": "L67" + }, + { + "id": "project_tree_rationale_91", + "label": "Emit a concise warning without aborting the traversal.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "emit a concise warning without aborting the traversal.", + "source_file": "project_tree.py", + "source_location": "L91" + }, + { + "id": "project_tree_rationale_97", + "label": "Return a normalized absolute path without requiring it to exist.", + "_origin": "ast", + "community": 1, + "community_name": "project_tree.py", + "file_type": "rationale", + "norm_label": "return a normalized absolute path without requiring it to exist.", + "source_file": "project_tree.py", + "source_location": "L97" + }, + { + "id": "tests_test_urls_contract_py_simpletestcase", + "label": "SimpleTestCase", + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "code", + "norm_label": "simpletestcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_urls_contract_rationale_146", + "label": "\u0647\u0631 `views.X` \u062f\u0631 urls.py \u0628\u0627\u06cc\u062f \u062f\u0631 \u067e\u06a9\u06cc\u062c views \u0645\u0648\u062c\u0648\u062f \u0648 \u0642\u0627\u0628\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0627\u0634\u062f.", + "_origin": "ast", + "community": 102, + "community_name": "UrlContractTests", + "file_type": "rationale", + "norm_label": "\u0647\u0631 `views.x` \u062f\u0631 urls.py \u0628\u0627\u06cc\u062f \u062f\u0631 \u067e\u06a9\u06cc\u062c views \u0645\u0648\u062c\u0648\u062f \u0648 \u0642\u0627\u0628\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0627\u0634\u062f.", + "source_file": "tests/test_urls_contract.py", + "source_location": "L146" + }, + { + "id": "admin_panel_models_system", + "label": "system.py", + "_origin": "ast", + "community": 104, + "community_name": "system.py", + "file_type": "code", + "norm_label": "system.py", + "source_file": "admin_panel/models/system.py", + "source_location": "L1" + }, + { + "id": "tests_init", + "label": "tests/__init__.py", + "_origin": "ast", + "community": 107, + "community_name": "tests/__init__.py", + "file_type": "code", + "norm_label": "tests/__init__.py", + "source_file": "tests/__init__.py", + "source_location": null + }, + { + "id": "tests_test_view_smoke_py_testcase", + "label": "TestCase", + "_origin": "ast", + "community": 11, + "community_name": "ViewSmokeTests", + "file_type": "code", + "norm_label": "testcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_view_smoke_rationale_84", + "label": "(\u0646\u0627\u0645 \u0645\u0633\u06cc\u0631, kwargs, \u0645\u062a\u062f, \u062f\u0627\u062f\u0647\u0654 \u0627\u0631\u0633\u0627\u0644\u06cc)", + "_origin": "ast", + "community": 11, + "community_name": "ViewSmokeTests", + "file_type": "rationale", + "norm_label": "(\u0646\u0627\u0645 \u0645\u0633\u06cc\u0631, kwargs, \u0645\u062a\u062f, \u062f\u0627\u062f\u0647 \u0627\u0631\u0633\u0627\u0644\u06cc)", + "source_file": "tests/test_view_smoke.py", + "source_location": "L84" + }, + { + "id": "admin_panel_models_actions", + "label": "models/actions.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "models/actions.py", + "source_file": "admin_panel/models/actions.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_factors", + "label": "models/factors.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "models/factors.py", + "source_file": "admin_panel/models/factors.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_users", + "label": "users.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "users.py", + "source_file": "admin_panel/models/users.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_actions", + "label": "views/actions.py", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "views/actions.py", + "source_file": "admin_panel/views/actions.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_actions_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 13, + "community_name": "User", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_admin", + "label": "admin/admin.py", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": "admin/admin.py", + "source_file": "admin/admin.py", + "source_location": "L1" + }, + { + "id": "admin_panel_admin", + "label": "admin_panel/admin.py", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": "admin_panel/admin.py", + "source_file": "admin_panel/admin.py", + "source_location": "L1" + }, + { + "id": "register", + "label": "register", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "code", + "norm_label": "register", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_admin_rationale_54", + "label": "\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a\u2026", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "rationale", + "norm_label": "\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a...", + "source_file": "admin_panel/admin.py", + "source_location": "L54" + }, + { + "id": "admin_panel_admin_rationale_75", + "label": "\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u0646\u0628\u0627\u0631\u0647\u0627", + "_origin": "ast", + "community": 15, + "community_name": "django_contrib", + "file_type": "rationale", + "norm_label": "\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u0646\u0628\u0627\u0631\u0647\u0627", + "source_file": "admin_panel/admin.py", + "source_location": "L75" + }, + { + "id": "admin_models", + "label": "models.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "models.py", + "source_file": "admin/models.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_init", + "label": "models/__init__.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "models/__init__.py", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L1" + }, + { + "id": "admin_panel_tests", + "label": "admin_panel/tests.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "admin_panel/tests.py", + "source_file": "admin_panel/tests.py", + "source_location": "L1" + }, + { + "id": "admin_tests", + "label": "admin/tests.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "admin/tests.py", + "source_file": "admin/tests.py", + "source_location": "L1" + }, + { + "id": "tests_factories", + "label": "factories.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "factories.py", + "source_file": "tests/factories.py", + "source_location": "L1" + }, + { + "id": "tests_test_customers", + "label": "test_customers.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_customers.py", + "source_file": "tests/test_customers.py", + "source_location": "L1" + }, + { + "id": "tests_test_customers_py_testcase", + "label": "TestCase", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "testcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_factors", + "label": "test_factors.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_factors.py", + "source_file": "tests/test_factors.py", + "source_location": "L1" + }, + { + "id": "tests_test_factors_py_testcase", + "label": "TestCase", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "testcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_inventory", + "label": "test_inventory.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_inventory.py", + "source_file": "tests/test_inventory.py", + "source_location": "L1" + }, + { + "id": "tests_test_models_contract", + "label": "test_models_contract.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_models_contract.py", + "source_file": "tests/test_models_contract.py", + "source_location": "L1" + }, + { + "id": "tests_test_urls_contract", + "label": "test_urls_contract.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_urls_contract.py", + "source_file": "tests/test_urls_contract.py", + "source_location": "L1" + }, + { + "id": "tests_test_view_smoke", + "label": "test_view_smoke.py", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "code", + "norm_label": "test_view_smoke.py", + "source_file": "tests/test_view_smoke.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_init_rationale_1", + "label": "\u067e\u06a9\u06cc\u062c \u0645\u062f\u0644\u200c\u0647\u0627\u06cc admin_panel. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647\u0654 models.py \u0627\u0633\u062a \u0648 \u0622\u0646 \u0631\u0627\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u067e\u06a9\u06cc\u062c \u0645\u062f\u0644\u200c\u0647\u0627\u06cc admin_panel. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647 models.py \u0627\u0633\u062a \u0648 \u0627\u0646 \u0631\u0627...", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L1" + }, + { + "id": "tests_factories_rationale_1", + "label": "\u06a9\u0627\u0631\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0633\u0627\u062e\u062a \u062f\u0627\u062f\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647. \u0627\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u0641\u0642\u0637 \u0631\u0648\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u06a9\u0627\u0631\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0633\u0627\u062e\u062a \u062f\u0627\u062f\u0647 \u0627\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647. \u0627\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u0641\u0642\u0637 \u0631\u0648\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633...", + "source_file": "tests/factories.py", + "source_location": "L1" + }, + { + "id": "tests_factories_rationale_23", + "label": "\u0633\u0627\u062e\u062a \u06a9\u0627\u0631\u0628\u0631. \u0628\u0627 `superuser=True` \u062a\u0645\u0627\u0645 \u0628\u0631\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0639\u0628\u0648\u0631 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0633\u0627\u062e\u062a \u06a9\u0627\u0631\u0628\u0631. \u0628\u0627 `superuser=true` \u062a\u0645\u0627\u0645 \u0628\u0631\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0639\u0628\u0648\u0631 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f....", + "source_file": "tests/factories.py", + "source_location": "L23" + }, + { + "id": "tests_factories_rationale_47", + "label": "\u0633\u0627\u062e\u062a \u0627\u0646\u0628\u0627\u0631. - `viewers` \u0628\u0647 M2M `user` \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f (\u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0634\u0627\u0647\u062f\u0647/\u062a\u0627\u06cc\u06cc\u062f\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0633\u0627\u062e\u062a \u0627\u0646\u0628\u0627\u0631. - `viewers` \u0628\u0647 m2m `user` \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f (\u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0634\u0627\u0647\u062f\u0647/\u062a\u0627\u06cc\u06cc\u062f...", + "source_file": "tests/factories.py", + "source_location": "L47" + }, + { + "id": "tests_factories_rationale_79", + "label": "\u062b\u0628\u062a \u0648\u0631\u0648\u062f \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 (\u0627\u0632 \u0645\u0633\u06cc\u0631 \u0627\u0645\u0646 ProductInStore.save).", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062b\u0628\u062a \u0648\u0631\u0648\u062f \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 (\u0627\u0632 \u0645\u0633\u06cc\u0631 \u0627\u0645\u0646 productinstore.save).", + "source_file": "tests/factories.py", + "source_location": "L79" + }, + { + "id": "tests_factories_rationale_92", + "label": "\u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 (s_in - s_out).", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 (s_in - s_out).", + "source_file": "tests/factories.py", + "source_location": "L92" + }, + { + "id": "tests_test_customers_rationale_1", + "label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0645\u0634\u062a\u0631\u06cc: \u0627\u0641\u0632\u0648\u062f\u0646\u060c \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0646\u06af\u0647\u0628\u0627\u0646 \u062d\u0630\u0641 (\u0639\u062f\u0645 \u062d\u0630\u0641 \u0645\u0634\u062a\u0631\u06cc \u062f\u0627\u0631\u0627\u06cc \u0633\u0627\u0628\u0642\u0647).", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0645\u0634\u062a\u0631\u06cc: \u0627\u0641\u0632\u0648\u062f\u0646\u060c \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648 \u0646\u06af\u0647\u0628\u0627\u0646 \u062d\u0630\u0641 (\u0639\u062f\u0645 \u062d\u0630\u0641 \u0645\u0634\u062a\u0631\u06cc \u062f\u0627\u0631\u0627\u06cc \u0633\u0627\u0628\u0642\u0647).", + "source_file": "tests/test_customers.py", + "source_location": "L1" + }, + { + "id": "tests_test_factors_rationale_1", + "label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0641\u0627\u06a9\u062a\u0648\u0631: \u062d\u0630\u0641 \u0646\u0631\u0645\u060c \u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0627\u0646\u0628\u0627\u0631 \u0648 \u062c\u0631\u06cc\u0627\u0646 \u0633\u0627\u062e\u062a \u0641\u0627\u06a9\u062a\u0648\u0631 \u0627\u0632\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0641\u0627\u06a9\u062a\u0648\u0631: \u062d\u0630\u0641 \u0646\u0631\u0645\u060c \u0645\u062d\u0627\u0641\u0638\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0627\u0646\u0628\u0627\u0631 \u0648 \u062c\u0631\u06cc\u0627\u0646 \u0633\u0627\u062e\u062a \u0641\u0627\u06a9\u062a\u0648\u0631 \u0627\u0632...", + "source_file": "tests/test_factors.py", + "source_location": "L1" + }, + { + "id": "tests_test_factors_rationale_47", + "label": "\u062a\u0633\u062a \u062c\u0631\u06cc\u0627\u0646 \u0627\u0635\u0644\u06cc \u0648\u06cc\u0648 `newFactor2` (\u0645\u0633\u06cc\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0633\u0627\u062e\u062a \u0641\u0627\u06a9\u062a\u0648\u0631) \u06a9\u0647 \u067e\u0633 \u0627\u0632 \u062a\u0642\u0633\u06cc\u0645\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a \u062c\u0631\u06cc\u0627\u0646 \u0627\u0635\u0644\u06cc \u0648\u06cc\u0648 `newfactor2` (\u0645\u0633\u06cc\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0633\u0627\u062e\u062a \u0641\u0627\u06a9\u062a\u0648\u0631) \u06a9\u0647 \u067e\u0633 \u0627\u0632 \u062a\u0642\u0633\u06cc\u0645...", + "source_file": "tests/test_factors.py", + "source_location": "L47" + }, + { + "id": "tests_test_inventory_rationale_1", + "label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0646\u0628\u0627\u0631: \u0631\u06cc\u0627\u0636\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u060c \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0644\u0627 \u0648 \u0686\u0631\u062e\u0647\u0654 \u06a9\u0627\u0645\u0644 \u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u06cc\u0646\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0646\u0628\u0627\u0631: \u0631\u06cc\u0627\u0636\u06cc \u0645\u0648\u062c\u0648\u062f\u06cc\u060c \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0644\u0627 \u0648 \u0686\u0631\u062e\u0647 \u06a9\u0627\u0645\u0644 \u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u06cc\u0646...", + "source_file": "tests/test_inventory.py", + "source_location": "L1" + }, + { + "id": "tests_test_models_contract_rationale_1", + "label": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f (Contract) \u067e\u06a9\u06cc\u062c \u0645\u062f\u0644\u200c\u0647\u0627 \u067e\u0633 \u0627\u0632 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc. \u0647\u062f\u0641: \u062a\u0636\u0645\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u062a\u0642\u0633\u06cc\u0645\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f (contract) \u067e\u06a9\u06cc\u062c \u0645\u062f\u0644\u200c\u0647\u0627 \u067e\u0633 \u0627\u0632 \u0628\u0627\u0632\u0646\u0648\u06cc\u0633\u06cc. \u0647\u062f\u0641: \u062a\u0636\u0645\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u062a\u0642\u0633\u06cc\u0645...", + "source_file": "tests/test_models_contract.py", + "source_location": "L1" + }, + { + "id": "tests_test_urls_contract_rationale_1", + "label": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f URL\u0647\u0627 \u0648 \u0648\u06cc\u0648\u0647\u0627 \u067e\u0633 \u0627\u0632 \u062a\u0642\u0633\u06cc\u0645 `views.py` \u0628\u0647 \u067e\u06a9\u06cc\u062c `views/`. \u0646\u06af\u0647\u0628\u0627\u0646 \u062d\u0630\u0641\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u0642\u0631\u0627\u0631\u062f\u0627\u062f url\u0647\u0627 \u0648 \u0648\u06cc\u0648\u0647\u0627 \u067e\u0633 \u0627\u0632 \u062a\u0642\u0633\u06cc\u0645 `views.py` \u0628\u0647 \u067e\u06a9\u06cc\u062c `views/`. \u0646\u06af\u0647\u0628\u0627\u0646 \u062d\u0630\u0641...", + "source_file": "tests/test_urls_contract.py", + "source_location": "L1" + }, + { + "id": "tests_test_view_smoke_rationale_1", + "label": "\u062a\u0633\u062a \u062f\u0648\u062f\u06cc (Smoke Test) \u062a\u0645\u0627\u0645 \u0627\u0646\u062f\u067e\u0648\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc \u0627\u067e admin_panel. \u0686\u0631\u0627 \u0627\u06cc\u0646 \u062a\u0633\u062a \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a\u061f\u2026", + "_origin": "ast", + "community": 16, + "community_name": "models/__init__.py", + "file_type": "rationale", + "norm_label": "\u062a\u0633\u062a \u062f\u0648\u062f\u06cc (smoke test) \u062a\u0645\u0627\u0645 \u0627\u0646\u062f\u067e\u0648\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc \u0627\u067e admin_panel. \u0686\u0631\u0627 \u0627\u06cc\u0646 \u062a\u0633\u062a \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a\u061f...", + "source_file": "tests/test_view_smoke.py", + "source_location": "L1" + }, + { + "id": "ripwire_readme_10_quality_evaluation", + "label": "10. Quality evaluation", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "10. quality evaluation", + "source_file": "ripwire - README.md", + "source_location": "L2846" + }, + { + "id": "ripwire_readme_11_agent_integration", + "label": "11. Agent integration", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "11. agent integration", + "source_file": "ripwire - README.md", + "source_location": "L2873" + }, + { + "id": "ripwire_readme_12_supported_languages_and_formats", + "label": "12. Supported languages and formats", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "12. supported languages and formats", + "source_file": "ripwire - README.md", + "source_location": "L2922" + }, + { + "id": "ripwire_readme_13_performance", + "label": "13. Performance", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "13. performance", + "source_file": "ripwire - README.md", + "source_location": "L2958" + }, + { + "id": "ripwire_readme_14_known_limits", + "label": "14. Known limits", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "14. known limits", + "source_file": "ripwire - README.md", + "source_location": "L2977" + }, + { + "id": "ripwire_readme_15_documentation", + "label": "15. Documentation", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "15. documentation", + "source_file": "ripwire - README.md", + "source_location": "L3015" + }, + { + "id": "ripwire_readme_16_improvement", + "label": "16. Improvement", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "16. improvement", + "source_file": "ripwire - README.md", + "source_location": "L3026" + }, + { + "id": "ripwire_readme_17_license", + "label": "17. License", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "17. license", + "source_file": "ripwire - README.md", + "source_location": "L3041" + }, + { + "id": "ripwire_readme_1_purpose_and_function", + "label": "1. Purpose and function", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. purpose and function", + "source_file": "ripwire - README.md", + "source_location": "L2347" + }, + { + "id": "ripwire_readme_2_system_requirements", + "label": "2. System requirements", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. system requirements", + "source_file": "ripwire - README.md", + "source_location": "L2433" + }, + { + "id": "ripwire_readme_3_1_install_a_prebuilt_binary", + "label": "3.1 Install a prebuilt binary", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.1 install a prebuilt binary", + "source_file": "ripwire - README.md", + "source_location": "L2460" + }, + { + "id": "ripwire_readme_3_2_build_from_source", + "label": "3.2 Build from source", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.2 build from source", + "source_file": "ripwire - README.md", + "source_location": "L2488" + }, + { + "id": "ripwire_readme_3_3_install_the_agent_skills", + "label": "3.3 Install the agent skills", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.3 install the agent skills", + "source_file": "ripwire - README.md", + "source_location": "L2546" + }, + { + "id": "ripwire_readme_3_4_register_the_mcp_server_optional", + "label": "3.4 Register the MCP server (optional)", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3.4 register the mcp server (optional)", + "source_file": "ripwire - README.md", + "source_location": "L2566" + }, + { + "id": "ripwire_readme_3_installation", + "label": "3. Installation", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. installation", + "source_file": "ripwire - README.md", + "source_location": "L2458" + }, + { + "id": "ripwire_readme_4_1_make_the_first_map", + "label": "4.1 Make the first map", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4.1 make the first map", + "source_file": "ripwire - README.md", + "source_location": "L2604" + }, + { + "id": "ripwire_readme_4_2_use_the_common_commands", + "label": "4.2 Use the common commands", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4.2 use the common commands", + "source_file": "ripwire - README.md", + "source_location": "L2621" + }, + { + "id": "ripwire_readme_4_first_use", + "label": "4. First use", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. first use", + "source_file": "ripwire - README.md", + "source_location": "L2598" + }, + { + "id": "ripwire_readme_5_command_families", + "label": "5. Command families", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. command families", + "source_file": "ripwire - README.md", + "source_location": "L2645" + }, + { + "id": "ripwire_readme_6_1_output_example", + "label": "6.1 Output example", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.1 output example", + "source_file": "ripwire - README.md", + "source_location": "L2684" + }, + { + "id": "ripwire_readme_6_2_exit_codes", + "label": "6.2 Exit codes", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.2 exit codes", + "source_file": "ripwire - README.md", + "source_location": "L2707" + }, + { + "id": "ripwire_readme_6_3_json_output", + "label": "6.3 JSON output", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6.3 json output", + "source_file": "ripwire - README.md", + "source_location": "L2720" + }, + { + "id": "ripwire_readme_6_output_format", + "label": "6. Output format", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. output format", + "source_file": "ripwire - README.md", + "source_location": "L2672" + }, + { + "id": "ripwire_readme_7_accuracy_and_disclosure_rules", + "label": "7. Accuracy and disclosure rules", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "7. accuracy and disclosure rules", + "source_file": "ripwire - README.md", + "source_location": "L2728" + }, + { + "id": "ripwire_readme_8_determinism", + "label": "8. Determinism", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "8. determinism", + "source_file": "ripwire - README.md", + "source_location": "L2778" + }, + { + "id": "ripwire_readme_9_verification_and_quality_control", + "label": "9. Verification and quality control", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "9. verification and quality control", + "source_file": "ripwire - README.md", + "source_location": "L2811" + }, + { + "id": "ripwire_readme_reference_guide", + "label": "Reference guide", + "_origin": "ast", + "community": 19, + "community_name": "Reference guide", + "file_type": "document", + "node_kind": "heading", + "norm_label": "reference guide", + "source_file": "ripwire - README.md", + "source_location": "L2318" + }, + { + "id": "admin_panel_management_commands_gt_esh", + "label": "gt_esh.py", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "gt_esh.py", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_gt_esh_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_management_commands_send_daily_report", + "label": "send_daily_report.py", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "send_daily_report.py", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_send_daily_report_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup", + "label": "sqlite_db_backup.py", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "sqlite_db_backup.py", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "khatibi_production_settings", + "label": "production_settings.py", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "production_settings.py", + "source_file": "khatibi/production_settings.py", + "source_location": "L1" + }, + { + "id": "khatibi_settings", + "label": "settings.py", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "code", + "norm_label": "settings.py", + "source_file": "khatibi/settings.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_115", + "label": "\u0645\u062a\u062f \u06a9\u0645\u06a9\u06cc \u0635\u0631\u0641\u0627\u064b \u0628\u0631\u0627\u06cc \u062d\u0627\u0644\u062a \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc (Dry Run) \u0628\u062f\u0648\u0646 \u06a9\u0627\u0645\u06cc\u062a \u0632\u0646\u062f\u0647", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "rationale", + "norm_label": "\u0645\u062a\u062f \u06a9\u0645\u06a9\u06cc \u0635\u0631\u0641\u0627 \u0628\u0631\u0627\u06cc \u062d\u0627\u0644\u062a \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc (dry run) \u0628\u062f\u0648\u0646 \u06a9\u0627\u0645\u06cc\u062a \u0632\u0646\u062f\u0647", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L115" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_123", + "label": "\u0647\u0633\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u06cc\u0628\u0631\u06cc\u062f\u06cc: \u06cc\u06a9 \u0628\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631 \u0631\u0645\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u0646\u0648\u0634\u062a\u0646", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "rationale", + "norm_label": "\u0647\u0633\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u06cc\u0628\u0631\u06cc\u062f\u06cc: \u06cc\u06a9 \u0628\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631 \u0631\u0645\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u0646\u0648\u0634\u062a\u0646", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L123" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_89", + "label": "\u0627\u062c\u0631\u0627\u06cc \u062d\u0644\u0642\u0647\u200c\u0647\u0627\u06cc \u0632\u0646\u062f\u0647 \u0628\u0627 \u0642\u0641\u0644 \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc IMMEDIATE \u062c\u0647\u062a \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062e\u0637\u0627\u06cc \u0642\u0641\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "rationale", + "norm_label": "\u0627\u062c\u0631\u0627\u06cc \u062d\u0644\u0642\u0647\u200c\u0647\u0627\u06cc \u0632\u0646\u062f\u0647 \u0628\u0627 \u0642\u0641\u0644 \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc immediate \u062c\u0647\u062a \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062e\u0637\u0627\u06cc \u0642\u0641\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L89" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_rationale_158", + "label": "\u062a\u0636\u0645\u06cc\u0646 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc Volume \u0647\u0627\u06cc \u062f\u0627\u06a9\u0631 \u062f\u0631 \u0647\u0631 \u0634\u0631\u0627\u06cc\u0637\u06cc", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "rationale", + "norm_label": "\u062a\u0636\u0645\u06cc\u0646 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc volume \u0647\u0627\u06cc \u062f\u0627\u06a9\u0631 \u062f\u0631 \u0647\u0631 \u0634\u0631\u0627\u06cc\u0637\u06cc", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L158" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_rationale_30", + "label": "\u0641\u0642\u0637 \u0641\u0644\u06af \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062e\u0631\u0648\u062c \u0646\u0627\u06af\u0647\u0627\u0646\u06cc (sys.exit) \u0628\u0627\u0639\u062b \u062e\u0631\u0627\u0628\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0646\u062c\u06cc\u0646 \u062f\u0631\u2026", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "rationale", + "norm_label": "\u0641\u0642\u0637 \u0641\u0644\u06af \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062e\u0631\u0648\u062c \u0646\u0627\u06af\u0647\u0627\u0646\u06cc (sys.exit) \u0628\u0627\u0639\u062b \u062e\u0631\u0627\u0628\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0646\u062c\u06cc\u0646 \u062f\u0631...", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L30" + }, + { + "id": "khatibi_settings_rationale_1", + "label": "Django settings for khatibi project. Generated by 'django-admin startproject'\u2026", + "_origin": "ast", + "community": 2, + "community_name": "sqlite_db_backup.py", + "file_type": "rationale", + "norm_label": "django settings for khatibi project. generated by 'django-admin startproject'...", + "source_file": "khatibi/settings.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_products", + "label": "products.py", + "_origin": "ast", + "community": 20, + "community_name": "ProductInStore", + "file_type": "code", + "norm_label": "products.py", + "source_file": "admin_panel/models/products.py", + "source_location": "L1" + }, + { + "id": "github_copilot_instructions", + "label": "copilot-instructions.md", + "_origin": "ast", + "community": 21, + "community_name": "graphify", + "file_type": "document", + "node_kind": "page", + "norm_label": "copilot-instructions.md", + "source_file": ".github/copilot-instructions.md", + "source_location": "L1" + }, + { + "id": "github_copilot_instructions_graphify", + "label": "graphify", + "_origin": "ast", + "community": 21, + "community_name": "graphify", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify", + "rationale": "A tool for querying repository architecture and structure.", + "source_file": ".github/copilot-instructions.md", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0017_factoriteam_garantyesh", + "label": "0017_factoriteam_garantyesh.py", + "_origin": "ast", + "community": 23, + "community_name": "0017_factoriteam_garantyesh.py", + "file_type": "code", + "norm_label": "0017_factoriteam_garantyesh.py", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L1" + }, + { + "id": "admin_apps", + "label": "admin/apps.py", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "admin/apps.py", + "source_file": "admin/apps.py", + "source_location": "L1" + }, + { + "id": "admin_apps_py_appconfig", + "label": "AppConfig", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "appconfig", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_apps", + "label": "admin_panel/apps.py", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "admin_panel/apps.py", + "source_file": "admin_panel/apps.py", + "source_location": "L1" + }, + { + "id": "admin_panel_apps_py_appconfig", + "label": "AppConfig", + "_origin": "ast", + "community": 24, + "community_name": "django_apps", + "file_type": "code", + "norm_label": "appconfig", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_migrations_0002_auto_20220114_1616", + "label": "0002_auto_20220114_1616.py", + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "norm_label": "0002_auto_20220114_1616.py", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0003_auto_20220115_1401", + "label": "0003_auto_20220115_1401.py", + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "norm_label": "0003_auto_20220115_1401.py", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0031_article_sarresid", + "label": "0031_article_sarresid.py", + "_origin": "ast", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "file_type": "code", + "norm_label": "0031_article_sarresid.py", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0021_alter_article_type", + "label": "0021_alter_article_type.py", + "_origin": "ast", + "community": 26, + "community_name": "0021_alter_article_type.py", + "file_type": "code", + "norm_label": "0021_alter_article_type.py", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L1" + }, + { + "id": "agents", + "label": "AGENTS.md", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "page", + "norm_label": "agents.md", + "source_file": "AGENTS.md", + "source_location": "L1" + }, + { + "id": "agents_1_codebase_navigation_analysis_ripwire_vs_graphify", + "label": "1. Codebase Navigation & Analysis (Ripwire vs. Graphify)", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. codebase navigation & analysis (ripwire vs. graphify)", + "source_file": "AGENTS.md", + "source_location": "L3" + }, + { + "id": "agents_2_dynamic_help_self_correction_staleness", + "label": "2. Dynamic Help, Self-Correction & Staleness", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. dynamic help, self-correction & staleness", + "source_file": "AGENTS.md", + "source_location": "L32" + }, + { + "id": "agents_3_git_operations_safety", + "label": "3. Git Operations & Safety", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "3. git operations & safety", + "source_file": "AGENTS.md", + "source_location": "L48" + }, + { + "id": "agents_4_development_server_lifecycle", + "label": "4. Development Server Lifecycle", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "4. development server lifecycle", + "source_file": "AGENTS.md", + "source_location": "L56" + }, + { + "id": "agents_5_environment_frontend_pwa_safety", + "label": "5. Environment, Frontend & PWA Safety", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "5. environment, frontend & pwa safety", + "source_file": "AGENTS.md", + "source_location": "L65" + }, + { + "id": "agents_6_end_to_end_browser_tests_playwright", + "label": "6. End-to-End Browser Tests (Playwright)", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "6. end-to-end browser tests (playwright)", + "source_file": "AGENTS.md", + "source_location": "L75" + }, + { + "id": "agents_project_operating_agent_guidelines", + "label": "Project Operating & Agent Guidelines", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "project operating & agent guidelines", + "source_file": "AGENTS.md", + "source_location": "L1" + }, + { + "id": "agents_routing_gate_pipeline", + "label": "Routing Gate & Pipeline", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "routing gate & pipeline", + "source_file": "AGENTS.md", + "source_location": "L16" + }, + { + "id": "ripwire_readme", + "label": "ripwire - README.md", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "page", + "norm_label": "ripwire - readme.md", + "source_file": "ripwire - README.md", + "source_location": "L1" + }, + { + "id": "ripwire_readme_1_optional_register_the_mcp_server", + "label": "1. (Optional) Register the MCP server", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "1. (optional) register the mcp server", + "source_file": "ripwire - README.md", + "source_location": "L2127" + }, + { + "id": "ripwire_readme_2_install_the_skills", + "label": "2. Install the skills", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "2. install the skills", + "source_file": "ripwire - README.md", + "source_location": "L2183" + }, + { + "id": "ripwire_readme_against_other_tools", + "label": "Against other tools", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "against other tools", + "source_file": "ripwire - README.md", + "source_location": "L1617" + }, + { + "id": "ripwire_readme_against_the_leading_graph_database_code_context_mcp_server", + "label": "Against the leading graph-database code-context MCP server", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "against the leading graph-database code-context mcp server", + "source_file": "ripwire - README.md", + "source_location": "L427" + }, + { + "id": "ripwire_readme_better_code_it_automates_the_review_judgments_nobody_has_time_to_make_every_lens_from_published_research", + "label": "Better Code: It automates the review judgments nobody has time to make \u2014 every lens from published research", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "better code: it automates the review judgments nobody has time to make \u2014 every lens from published research", + "source_file": "ripwire - README.md", + "source_location": "L825" + }, + { + "id": "ripwire_readme_documentation", + "label": "Documentation", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "documentation", + "source_file": "ripwire - README.md", + "source_location": "L3107" + }, + { + "id": "ripwire_readme_graph_ranked_retrieval_it_finds_the_right_files_more_often_than_the_alternatives", + "label": "Graph-Ranked Retrieval: It finds the right files more often than the alternatives", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graph-ranked retrieval: it finds the right files more often than the alternatives", + "source_file": "ripwire - README.md", + "source_location": "L471" + }, + { + "id": "ripwire_readme_if_it_works_on_your_codebase_tell_us_what_it_got_wrong", + "label": "If it works on your codebase, tell us what it got wrong", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "if it works on your codebase, tell us what it got wrong", + "source_file": "ripwire - README.md", + "source_location": "L2254" + }, + { + "id": "ripwire_readme_improve_it_with_your_agent", + "label": "Improve it with your agent", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "improve it with your agent", + "source_file": "ripwire - README.md", + "source_location": "L2213" + }, + { + "id": "ripwire_readme_in_the_numbers", + "label": "In the numbers", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "in the numbers", + "source_file": "ripwire - README.md", + "source_location": "L2057" + }, + { + "id": "ripwire_readme_in_the_output", + "label": "In the output", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "in the output", + "source_file": "ripwire - README.md", + "source_location": "L2033" + }, + { + "id": "ripwire_readme_in_the_tests", + "label": "In the tests", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "in the tests", + "source_file": "ripwire - README.md", + "source_location": "L2082" + }, + { + "id": "ripwire_readme_languages", + "label": "Languages", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "languages", + "source_file": "ripwire - README.md", + "source_location": "L2275" + }, + { + "id": "ripwire_readme_licence", + "label": "Licence", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "licence", + "source_file": "ripwire - README.md", + "source_location": "L3135" + }, + { + "id": "ripwire_readme_measured", + "label": "Measured", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "measured", + "source_file": "ripwire - README.md", + "source_location": "L1606" + }, + { + "id": "ripwire_readme_nest_is_a_max_so_it_cannot_tell_a_long_function_from_a_tangled_one", + "label": "`nest=` is a max, so it cannot tell a long function from a tangled one", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "`nest=` is a max, so it cannot tell a long function from a tangled one", + "source_file": "ripwire - README.md", + "source_location": "L1181" + }, + { + "id": "ripwire_readme_quickstart", + "label": "Quickstart", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "quickstart", + "source_file": "ripwire - README.md", + "source_location": "L987" + }, + { + "id": "ripwire_readme_real_runs", + "label": "Real runs", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "real runs", + "source_file": "ripwire - README.md", + "source_location": "L1377" + }, + { + "id": "ripwire_readme_release_notes", + "label": "Release notes", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "release notes", + "source_file": "ripwire - README.md", + "source_location": "L3052" + }, + { + "id": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "label": "Rip'n Fast. Fewer Tokens. Better Code.", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "rip'n fast. fewer tokens. better code.", + "source_file": "ripwire - README.md", + "source_location": "L10" + }, + { + "id": "ripwire_readme_same_answer_a_fraction_of_the_tokens_read_this_table_first_if_your_agent_is_on_a_budget", + "label": "Same answer, a fraction of the tokens \u2014 read this table first if your agent is on a budget", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "same answer, a fraction of the tokens \u2014 read this table first if your agent is on a budget", + "source_file": "ripwire - README.md", + "source_location": "L227" + }, + { + "id": "ripwire_readme_saves_tokens_it_answers_for_a_fraction_of_the_context", + "label": "Saves Tokens: It answers for a fraction of the context", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "saves tokens: it answers for a fraction of the context", + "source_file": "ripwire - README.md", + "source_location": "L724" + }, + { + "id": "ripwire_readme_see_the_map_not_just_the_numbers", + "label": "See the map \u2014 not just the numbers", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "see the map \u2014 not just the numbers", + "source_file": "ripwire - README.md", + "source_location": "L310" + }, + { + "id": "ripwire_readme_set_it_up_in_your_coding_agent", + "label": "Set it up in your coding agent", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "set it up in your coding agent", + "source_file": "ripwire - README.md", + "source_location": "L2101" + }, + { + "id": "ripwire_readme_standing_on_the_whole_field", + "label": "Standing on the whole field", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "standing on the whole field", + "source_file": "ripwire - README.md", + "source_location": "L1925" + }, + { + "id": "ripwire_readme_the_goal_one_question_one_complete_answer", + "label": "The goal: one question, one complete answer.", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "the goal: one question, one complete answer.", + "source_file": "ripwire - README.md", + "source_location": "L186" + }, + { + "id": "ripwire_readme_the_honesty_contract", + "label": "The honesty contract", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "the honesty contract", + "source_file": "ripwire - README.md", + "source_location": "L1948" + }, + { + "id": "ripwire_readme_the_quality_panel", + "label": "The quality panel", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "the quality panel", + "source_file": "ripwire - README.md", + "source_location": "L1147" + }, + { + "id": "ripwire_readme_what_it_answers", + "label": "What it answers", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what it answers", + "source_file": "ripwire - README.md", + "source_location": "L945" + }, + { + "id": "ripwire_readme_what_it_misses_and_what_to_run_next", + "label": "What it misses, and what to run next", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what it misses, and what to run next", + "source_file": "ripwire - README.md", + "source_location": "L1953" + }, + { + "id": "ripwire_readme_what_it_saves_you_in_tokens", + "label": "What it saves you, in tokens", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "what it saves you, in tokens", + "source_file": "ripwire - README.md", + "source_location": "L1767" + }, + { + "id": "ripwire_readme_where_it_pays_most_and_where_it_does_not", + "label": "Where it pays most, and where it does not", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "where it pays most, and where it does not", + "source_file": "ripwire - README.md", + "source_location": "L751" + }, + { + "id": "ripwire_readme_where_its_own_cycles_go_hardware_counters_per_scope", + "label": "Where its own cycles go \u2014 hardware counters, per scope", + "_origin": "ast", + "community": 27, + "community_name": "Rip'n Fast. Fewer Tokens. Better Code.", + "file_type": "document", + "node_kind": "heading", + "norm_label": "where its own cycles go \u2014 hardware counters, per scope", + "source_file": "ripwire - README.md", + "source_location": "L1813" + }, + { + "id": "admin_panel_migrations_0027_alter_action_nazar", + "label": "0027_alter_action_nazar.py", + "_origin": "ast", + "community": 28, + "community_name": "0027_alter_action_nazar.py", + "file_type": "code", + "norm_label": "0027_alter_action_nazar.py", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0004_factor_paytype", + "label": "0004_factor_paytype.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0004_factor_paytype.py", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0006_auto_20220121_2100", + "label": "0006_auto_20220121_2100.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0006_auto_20220121_2100.py", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0013_alter_factor_options", + "label": "0013_alter_factor_options.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0013_alter_factor_options.py", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0014_auto_20220123_1348", + "label": "0014_auto_20220123_1348.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0014_auto_20220123_1348.py", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0020_auto_20220126_1532", + "label": "0020_auto_20220126_1532.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0020_auto_20220126_1532.py", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0022_article_typepy", + "label": "0022_article_typepy.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0022_article_typepy.py", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0023_alter_article_typepy", + "label": "0023_alter_article_typepy.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0023_alter_article_typepy.py", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0025_action_actiontype", + "label": "0025_action_actiontype.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0025_action_actiontype.py", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0028_action_grade", + "label": "0028_action_grade.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0028_action_grade.py", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0030_auto_20220414_1047", + "label": "0030_auto_20220414_1047.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0030_auto_20220414_1047.py", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0037_sarresid_sarresiddt", + "label": "0037_sarresid_sarresiddt.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0037_sarresid_sarresiddt.py", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "label": "0039_customer_last_bazdid_dt.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0039_customer_last_bazdid_dt.py", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0041_auto_20240216_1607", + "label": "0041_auto_20240216_1607.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0041_auto_20240216_1607.py", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "label": "0047_alter_productinstore_movement_type.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0047_alter_productinstore_movement_type.py", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0049_alter_productinstore_options", + "label": "0049_alter_productinstore_options.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0049_alter_productinstore_options.py", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0055_action_nextnazardt", + "label": "0055_action_nextnazardt.py", + "_origin": "ast", + "community": 3, + "community_name": "django_db", + "file_type": "code", + "norm_label": "0055_action_nextnazardt.py", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0056_auto_20260731_1824", + "label": "0056_auto_20260731_1824.py", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "0056_auto_20260731_1824.py", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L1" + }, + { + "id": "admin_panel_models_finance", + "label": "models/finance.py", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "models/finance.py", + "source_file": "admin_panel/models/finance.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_finance", + "label": "views/finance.py", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "views/finance.py", + "source_file": "admin_panel/views/finance.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_finance_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_finance_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_finance_py_require_post", + "label": "require_POST", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "code", + "norm_label": "require_post", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_finance_rationale_236", + "label": "\u06af\u0632\u0627\u0631\u0634 \u062c\u0627\u0645\u0639 \u06af\u0631\u062f\u0634 \u0648 \u062e\u0631\u0648\u062c \u06a9\u0627\u0644\u0627 \u0627\u0632 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u06cc\u0644\u062a\u0631 \u0645\u062a\u0646\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0644\u0627\u060c \u0646\u0648\u0639 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c\u2026", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "rationale", + "norm_label": "\u06af\u0632\u0627\u0631\u0634 \u062c\u0627\u0645\u0639 \u06af\u0631\u062f\u0634 \u0648 \u062e\u0631\u0648\u062c \u06a9\u0627\u0644\u0627 \u0627\u0632 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u06cc\u0644\u062a\u0631 \u0645\u062a\u0646\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0644\u0627\u060c \u0646\u0648\u0639 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c...", + "source_file": "admin_panel/views/finance.py", + "source_location": "L236" + }, + { + "id": "admin_panel_views_finance_rationale_319", + "label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0647\u0648\u0634 \u0645\u0627\u0644\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0642\u062f\u06cc\u0646\u06af\u06cc (BI Dashboard) \u0645\u062c\u0647\u0632 \u0628\u0647 \u0647\u0633\u062a\u0647 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u06f3\u06f6\u06f0 \u062f\u0631\u062c\u0647\u2026", + "_origin": "ast", + "community": 30, + "community_name": "views/finance.py", + "file_type": "rationale", + "norm_label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0647\u0648\u0634 \u0645\u0627\u0644\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0642\u062f\u06cc\u0646\u06af\u06cc (bi dashboard) \u0645\u062c\u0647\u0632 \u0628\u0647 \u0647\u0633\u062a\u0647 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u06f3\u06f6\u06f0 \u062f\u0631\u062c\u0647...", + "source_file": "admin_panel/views/finance.py", + "source_location": "L319" + }, + { + "id": "admin_panel_migrations_0029_alter_article_options", + "label": "0029_alter_article_options.py", + "_origin": "ast", + "community": 32, + "community_name": "0029_alter_article_options.py", + "file_type": "code", + "norm_label": "0029_alter_article_options.py", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0034_alter_article_sarresid", + "label": "0034_alter_article_sarresid.py", + "_origin": "ast", + "community": 33, + "community_name": "0034_alter_article_sarresid.py", + "file_type": "code", + "norm_label": "0034_alter_article_sarresid.py", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0005_auto_20220121_2054", + "label": "0005_auto_20220121_2054.py", + "_origin": "ast", + "community": 34, + "community_name": "0005_auto_20220121_2054.py", + "file_type": "code", + "norm_label": "0005_auto_20220121_2054.py", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0035_alter_article_sarresid", + "label": "0035_alter_article_sarresid.py", + "_origin": "ast", + "community": 35, + "community_name": "0035_alter_article_sarresid.py", + "file_type": "code", + "norm_label": "0035_alter_article_sarresid.py", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0009_remove_storeroom_user", + "label": "0009_remove_storeroom_user.py", + "_origin": "ast", + "community": 36, + "community_name": "0009_remove_storeroom_user.py", + "file_type": "code", + "norm_label": "0009_remove_storeroom_user.py", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0010_auto_20220122_1546", + "label": "0010_auto_20220122_1546.py", + "_origin": "ast", + "community": 37, + "community_name": "0010_auto_20220122_1546.py", + "file_type": "code", + "norm_label": "0010_auto_20220122_1546.py", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0040_customer_laghv_bazdid", + "label": "0040_customer_laghv_bazdid.py", + "_origin": "ast", + "community": 38, + "community_name": "0040_customer_laghv_bazdid.py", + "file_type": "code", + "norm_label": "0040_customer_laghv_bazdid.py", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0043_sarresid_user", + "label": "0043_sarresid_user.py", + "_origin": "ast", + "community": 39, + "community_name": "0043_sarresid_user.py", + "file_type": "code", + "norm_label": "0043_sarresid_user.py", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0048_alter_productinstore_options", + "label": "0048_alter_productinstore_options.py", + "_origin": "ast", + "community": 40, + "community_name": "0048_alter_productinstore_options.py", + "file_type": "code", + "norm_label": "0048_alter_productinstore_options.py", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0032_article_paystatus", + "label": "0032_article_paystatus.py", + "_origin": "ast", + "community": 41, + "community_name": "0032_article_paystatus.py", + "file_type": "code", + "norm_label": "0032_article_paystatus.py", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0033_article_nahvepardakht", + "label": "0033_article_nahvepardakht.py", + "_origin": "ast", + "community": 42, + "community_name": "0033_article_nahvepardakht.py", + "file_type": "code", + "norm_label": "0033_article_nahvepardakht.py", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0044_sarresid_desc", + "label": "0044_sarresid_desc.py", + "_origin": "ast", + "community": 45, + "community_name": "0044_sarresid_desc.py", + "file_type": "code", + "norm_label": "0044_sarresid_desc.py", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L1" + }, + { + "id": "gemini", + "label": "GEMINI.md", + "_origin": "ast", + "community": 48, + "community_name": "GEMINI.md", + "file_type": "document", + "node_kind": "page", + "norm_label": "gemini.md", + "source_file": "GEMINI.md", + "source_location": "L1" + }, + { + "id": "gemini_graphify", + "label": "graphify", + "_origin": "ast", + "community": 48, + "community_name": "GEMINI.md", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify", + "source_file": "GEMINI.md", + "source_location": "L1" + }, + { + "id": "admin_migrations_init", + "label": "admin/migrations/__init__.py", + "_origin": "ast", + "community": 49, + "community_name": "admin/migrations/__init__.py", + "file_type": "code", + "norm_label": "admin/migrations/__init__.py", + "source_file": "admin/migrations/__init__.py", + "source_location": null + }, + { + "id": "admin_init", + "label": "admin/__init__.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "admin/__init__.py", + "source_file": "admin/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_models_customers", + "label": "models/customers.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "models/customers.py", + "source_file": "admin_panel/models/customers.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_custom_tags", + "label": "custom_tags.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "custom_tags.py", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_auth", + "label": "auth.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "auth.py", + "source_file": "admin_panel/views/auth.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_customers", + "label": "views/customers.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "views/customers.py", + "source_file": "admin_panel/views/customers.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_customers_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_customers_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_factors", + "label": "views/factors.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "views/factors.py", + "source_file": "admin_panel/views/factors.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_factors_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_factors_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_factors_py_require_post", + "label": "require_POST", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "require_post", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_helpers", + "label": "_helpers.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "_helpers.py", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_init", + "label": "views/__init__.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "views/__init__.py", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L1" + }, + { + "id": "admin_urls", + "label": "admin/urls.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "admin/urls.py", + "source_file": "admin/urls.py", + "source_location": "L1" + }, + { + "id": "admin_views", + "label": "views.py", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "views.py", + "source_file": "admin/views.py", + "source_location": "L1" + }, + { + "id": "csrf_exempt", + "label": "csrf_exempt", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "csrf_exempt", + "source_file": "", + "source_location": "" + }, + { + "id": "datetime", + "label": "datetime", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "datetime", + "source_file": "", + "source_location": "" + }, + { + "id": "exception", + "label": "Exception", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_helpers_rationale_1", + "label": "\u062a\u0648\u0627\u0628\u0639 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0644\u0627\u06cc\u0647\u0654 \u0648\u06cc\u0648\u0647\u0627.", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062a\u0648\u0627\u0628\u0639 \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0644\u0627\u06cc\u0647 \u0648\u06cc\u0648\u0647\u0627.", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_helpers_rationale_13", + "label": "\u062e\u0637\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0646\u0628\u0627\u0631", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062e\u0637\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0646\u0628\u0627\u0631", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L13" + }, + { + "id": "admin_panel_views_helpers_rationale_29", + "label": "\u062a\u0628\u062f\u06cc\u0644 \u0627\u0645\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 pDatepicker \u0628\u0647 \u0645\u06cc\u0644\u0627\u062f\u06cc", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062a\u0628\u062f\u06cc\u0644 \u0627\u0645\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 pdatepicker \u0628\u0647 \u0645\u06cc\u0644\u0627\u062f\u06cc", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L29" + }, + { + "id": "admin_panel_views_helpers_rationale_42", + "label": "\u062a\u0628\u062f\u06cc\u0644 \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u062a\u0627\u06cc\u0645\u200c\u0627\u0633\u062a\u0645\u067e\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u062a\u0628\u062f\u06cc\u0644 \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u062a\u0627\u06cc\u0645\u200c\u0627\u0633\u062a\u0645\u067e\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L42" + }, + { + "id": "admin_panel_views_init_rationale_1", + "label": "\u067e\u06a9\u06cc\u062c \u0648\u06cc\u0648\u0647\u0627\u06cc \u0627\u067e admin_panel. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647\u0654 \u0633\u0627\u0628\u0642\u2026", + "_origin": "ast", + "community": 5, + "community_name": "views/customers.py", + "file_type": "rationale", + "norm_label": "\u067e\u06a9\u06cc\u062c \u0648\u06cc\u0648\u0647\u0627\u06cc \u0627\u067e admin_panel. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0628\u0642...", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_init", + "label": "commands/__init__.py", + "_origin": "ast", + "community": 57, + "community_name": "commands/__init__.py", + "file_type": "code", + "norm_label": "commands/__init__.py", + "source_file": "admin_panel/management/commands/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_management_init", + "label": "management/__init__.py", + "_origin": "ast", + "community": 58, + "community_name": "management/__init__.py", + "file_type": "code", + "norm_label": "management/__init__.py", + "source_file": "admin_panel/management/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_migrations_init", + "label": "admin_panel/migrations/__init__.py", + "_origin": "ast", + "community": 59, + "community_name": "admin_panel/migrations/__init__.py", + "file_type": "code", + "norm_label": "admin_panel/migrations/__init__.py", + "source_file": "admin_panel/migrations/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_views_cheque_inquiry", + "label": "cheque_inquiry.py", + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "cheque_inquiry.py", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_cheque_inquiry_py_login_required", + "label": "login_required", + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_cheque_inquiry_py_permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_cheque_inquiry_rationale_229", + "label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u0645\u0631\u06a9\u0632\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc: sayad_id (GET)", + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "rationale", + "norm_label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u0645\u0631\u06a9\u0632\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc: sayad_id (get)", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L229" + }, + { + "id": "admin_panel_views_cheque_inquiry_rationale_252", + "label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062b\u0628\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u067e\u0627\u0633\u0627\u0631\u06af\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc: sayad_id, national_id,\u2026", + "_origin": "ast", + "community": 6, + "community_name": "cheque_inquiry.py", + "file_type": "rationale", + "norm_label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062b\u0628\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u067e\u0627\u0633\u0627\u0631\u06af\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc: sayad_id, national_id,...", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L252" + }, + { + "id": "admin_panel_migrations_0001_initial", + "label": "0001_initial.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0001_initial.py", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0007_productinstore_factor", + "label": "0007_productinstore_factor.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0007_productinstore_factor.py", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0008_storeroom_user", + "label": "0008_storeroom_user.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0008_storeroom_user.py", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0012_visitqueue_user", + "label": "0012_visitqueue_user.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0012_visitqueue_user.py", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0016_factor_user", + "label": "0016_factor_user.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0016_factor_user.py", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0018_alter_factoriteam_product", + "label": "0018_alter_factoriteam_product.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0018_alter_factoriteam_product.py", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0019_article_articletype", + "label": "0019_article_articletype.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0019_article_articletype.py", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0024_action", + "label": "0024_action.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0024_action.py", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0036_sarresid", + "label": "0036_sarresid.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0036_sarresid.py", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0038_auto_20240213_1735", + "label": "0038_auto_20240213_1735.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0038_auto_20240213_1735.py", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0046_auto_20260624_1818", + "label": "0046_auto_20260624_1818.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0046_auto_20260624_1818.py", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0054_auto_20260715_2250", + "label": "0054_auto_20260715_2250.py", + "_origin": "ast", + "community": 8, + "community_name": "django_db_models_deletion", + "file_type": "code", + "norm_label": "0054_auto_20260715_2250.py", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_init", + "label": "templatetags/__init__.py", + "_origin": "ast", + "community": 86, + "community_name": "templatetags/__init__.py", + "file_type": "code", + "norm_label": "templatetags/__init__.py", + "source_file": "admin_panel/templatetags/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_init", + "label": "admin_panel/__init__.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "admin_panel/__init__.py", + "source_file": "admin_panel/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_migrations_0011_storeroom_user", + "label": "0011_storeroom_user.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0011_storeroom_user.py", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0015_auto_20220124_0858", + "label": "0015_auto_20220124_0858.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0015_auto_20220124_0858.py", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0026_auto_20220209_1924", + "label": "0026_auto_20220209_1924.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0026_auto_20220209_1924.py", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0042_article_user", + "label": "0042_article_user.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0042_article_user.py", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0045_auto_20260610_1421", + "label": "0045_auto_20260610_1421.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0045_auto_20260610_1421.py", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0050_storetransferrequest", + "label": "0050_storetransferrequest.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0050_storetransferrequest.py", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0051_auto_20260705_1356", + "label": "0051_auto_20260705_1356.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0051_auto_20260705_1356.py", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0052_storeroomowner", + "label": "0052_storeroomowner.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0052_storeroomowner.py", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0053_storeroom_owners", + "label": "0053_storeroom_owners.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "0053_storeroom_owners.py", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L1" + }, + { + "id": "admin_panel_urls", + "label": "admin_panel/urls.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "admin_panel/urls.py", + "source_file": "admin_panel/urls.py", + "source_location": "L1" + }, + { + "id": "khatibi_urls", + "label": "khatibi/urls.py", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "code", + "norm_label": "khatibi/urls.py", + "source_file": "khatibi/urls.py", + "source_location": "L1" + }, + { + "id": "khatibi_urls_rationale_1", + "label": "khatibi URL Configuration The `urlpatterns` list routes URLs to views. For more\u2026", + "_origin": "ast", + "community": 9, + "community_name": "django_conf", + "file_type": "rationale", + "norm_label": "khatibi url configuration the `urlpatterns` list routes urls to views. for more...", + "source_file": "khatibi/urls.py", + "source_location": "L1" + }, + { + "id": "khatibi_init", + "label": "khatibi/__init__.py", + "_origin": "ast", + "community": 90, + "community_name": "khatibi/__init__.py", + "file_type": "code", + "norm_label": "khatibi/__init__.py", + "source_file": "khatibi/__init__.py", + "source_location": null + }, + { + "id": "tests_test_models_contract_py_simpletestcase", + "label": "SimpleTestCase", + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "code", + "norm_label": "simpletestcase", + "source_file": "", + "source_location": "" + }, + { + "id": "tests_test_models_contract_rationale_67", + "label": "\u0631\u0641\u062a\u0627\u0631 star-import \u0628\u0627\u06cc\u062f \u062f\u0642\u06cc\u0642\u0627\u064b \u0645\u0627\u0646\u0646\u062f \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647\u200c\u06cc \u0642\u0628\u0644\u06cc \u062d\u0641\u0638 \u0634\u0648\u062f\u061b \u0686\u0631\u0627\u06a9\u0647\u2026", + "_origin": "ast", + "community": 99, + "community_name": "ModelsPackageContractTests", + "file_type": "rationale", + "norm_label": "\u0631\u0641\u062a\u0627\u0631 star-import \u0628\u0627\u06cc\u062f \u062f\u0642\u06cc\u0642\u0627 \u0645\u0627\u0646\u0646\u062f \u0641\u0627\u06cc\u0644 \u062a\u06a9\u200c\u067e\u0627\u0631\u0686\u0647\u200c\u06cc \u0642\u0628\u0644\u06cc \u062d\u0641\u0638 \u0634\u0648\u062f\u061b \u0686\u0631\u0627\u06a9\u0647...", + "source_file": "tests/test_models_contract.py", + "source_location": "L67" + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html", + "label": "customersBK.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "contributor": null, + "file_type": "code", + "norm_label": "customersbk.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_datatables", + "label": "DataTables Library", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "contributor": null, + "file_type": "concept", + "norm_label": "datatables library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 322, + 327 + ], + "source_url": null + }, + { + "id": "concept_jquery", + "label": "jQuery", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "contributor": null, + "file_type": "concept", + "norm_label": "jquery", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 321, + 400 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "label": "hesabdariCheckPassFail.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "code", + "norm_label": "hesabdaricheckpassfail.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_data_customer", + "label": "Customer Data Object", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "customer data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "source_url": null + }, + { + "id": "admin_panel_data_factor", + "label": "Factor Data Object", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "factor data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 72, + 72 + ], + "source_url": null + }, + { + "id": "admin_panel_data_sarresid", + "label": "Sarresid Data Object", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "sarresid data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 54, + 54 + ], + "source_url": null + }, + { + "id": "admin_panel_url_customernew", + "label": "admin_panel:customerNew URL", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:customernew url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "source_url": null + }, + { + "id": "admin_panel_url_pardakhtnesiye", + "label": "admin_panel:pardakhtNesiye URL", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:pardakhtnesiye url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 111, + 111 + ], + "source_url": null + }, + { + "id": "admin_panel_url_passcheck", + "label": "/panel/passCheck/ URL", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "/panel/passcheck/ url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 201, + 201 + ], + "source_url": null + }, + { + "id": "django_permission_viewreportmali", + "label": "admin_panel.ViewReportMali Permission", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel.viewreportmali permission", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 4, + 4 + ], + "source_url": null + }, + { + "id": "javascript_library_jquery", + "label": "jQuery JS Library", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "jquery js library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 172, + 172 + ], + "source_url": null + }, + { + "id": "javascript_library_pdatepicker", + "label": "pDatepicker JS Library", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 18, + "community_name": "hesabdariCheckPassFail.html", + "contributor": null, + "file_type": "concept", + "norm_label": "pdatepicker js library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 180, + 180 + ], + "source_url": null + }, + { + "id": "copilot_chat", + "label": "Copilot Chat", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "concept", + "norm_label": "copilot chat", + "rationale": "The user interface where the /graphify command is invoked.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_explain", + "label": "graphify explain", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "concept", + "norm_label": "graphify explain", + "rationale": "A subcommand for getting a focused explanation of a concept.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_path", + "label": "graphify path", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "concept", + "norm_label": "graphify path", + "rationale": "A subcommand for finding relationships between two entities.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_query", + "label": "graphify query", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "concept", + "norm_label": "graphify query", + "rationale": "A subcommand for asking general questions about the repository architecture.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_graph_json", + "label": "graphify-out/graph.json", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/graph.json", + "rationale": "The primary data source for graphify commands.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_graph_report_md", + "label": "graphify-out/GRAPH_REPORT.md", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/graph_report.md", + "rationale": "A document for broad architecture review.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_wiki_index_md", + "label": "graphify-out/wiki/index.md", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 21, + "community_name": "graphify", + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/wiki/index.md", + "rationale": "A navigation aid for broad exploration.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_entezar_html", + "label": "admin_panel/entezar.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "admin_panel/entezar.html", + "contributor": null, + "file_type": "code", + "norm_label": "admin_panel/entezar.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_templatetags_custom_tags_tojalali", + "label": "toJalali filter", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "admin_panel/entezar.html", + "contributor": null, + "file_type": "code", + "norm_label": "tojalali filter", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 35, + 35 + ], + "source_url": null + }, + { + "id": "concept_customer_data", + "label": "Customer Data Structure", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "admin_panel/entezar.html", + "contributor": null, + "file_type": "concept", + "norm_label": "customer data structure", + "rationale": "The template iterates over a 'customers' collection and accesses attributes like id, name_family, last_bazdid_dt, phone1, phone2, and address, implying a consistent data structure for a customer.", + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 25, + 25 + ], + "source_url": null + }, + { + "id": "concept_kamadatepicker", + "label": "kamaDatepicker Library", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 29, + "community_name": "admin_panel/entezar.html", + "contributor": null, + "file_type": "concept", + "norm_label": "kamadatepicker library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 203, + 203 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html_createcs", + "label": "createCS click handler", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Customer Modals UI", + "contributor": null, + "file_type": "code", + "norm_label": "createcs click handler", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 328, + 344 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html_openrow", + "label": "openRow click handler", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Customer Modals UI", + "contributor": null, + "file_type": "code", + "norm_label": "openrow click handler", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 358, + 383 + ], + "source_url": null + }, + { + "id": "concept_customer_modal_ui", + "label": "Customer Modals UI", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 31, + "community_name": "Customer Modals UI", + "contributor": null, + "file_type": "concept", + "norm_label": "customer modals ui", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 202, + 319 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customernewbackup_html", + "label": "customerNewBackup.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "contributor": null, + "file_type": "code", + "norm_label": "customernewbackup.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_urls_newfactor", + "label": "admin_panel:newFactor URL", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:newfactor url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_category", + "label": "Category Data", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "contributor": null, + "file_type": "concept", + "norm_label": "category data", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_client_side_form_logic", + "label": "Client-side Form Logic", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "contributor": null, + "file_type": "concept", + "norm_label": "client-side form logic", + "rationale": "The template contains numerous elements with specific IDs (e.g., 'listPrds', 'btnAdd09', 'submitFactor', 'prdsList') and a complex, dynamic table structure, which strongly implies that JavaScript is used to manage user interactions, assemble form data, and trigger submission.", + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_customer", + "label": "Customer Data", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "contributor": null, + "file_type": "concept", + "norm_label": "customer data", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_concepts_csrf_token", + "label": "CSRF Token", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "contributor": null, + "file_type": "concept", + "norm_label": "csrf token", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_template_tags_custom_tags", + "label": "custom_tags", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "contributor": null, + "file_type": "concept", + "norm_label": "custom_tags", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_template_tags_static", + "label": "static", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "contributor": null, + "file_type": "concept", + "norm_label": "static", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_base_html", + "label": "base.html", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 61, + "community_name": "base.html", + "contributor": null, + "file_type": "code", + "norm_label": "base.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 1, + 1 + ], + "source_url": null + }, + { + "id": "admin_panel_templatetags_custom_tags_tocurrency", + "label": "toCurrency", + "_origin": "semantic", + "author": null, + "captured_at": null, + "community": 85, + "community_name": "toCurrency", + "contributor": null, + "file_type": "code", + "norm_label": "tocurrency", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 14, + 14 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_login", + "label": "admin_panel/login.html", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "code", + "norm_label": "admin_panel/login.html", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "admin_panel_templates_admin_panel_storebk1", + "label": "admin_panel/storeBK1.html", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "code", + "norm_label": "admin_panel/storebk1.html", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "javascript_kamadatepicker", + "label": "kamaDatepicker", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "code", + "norm_label": "kamadatepicker", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "static_admin_panel_bulma-rtl_min_css", + "label": "admin_panel/bulma-rtl.min.css", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "code", + "norm_label": "admin_panel/bulma-rtl.min.css", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_csrf_token", + "label": "Django CSRF Token", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django csrf token", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_custom_tags", + "label": "Django Custom Tags", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django custom tags", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_static_files", + "label": "Django Static Files", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django static files", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_url_admin_panel_newstore", + "label": "Django URL: admin_panel:newStore", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django url: admin_panel:newstore", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_url_admin_panel_operations", + "label": "Django URL: admin_panel:operations", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django url: admin_panel:operations", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_url_admin_panel_p_login", + "label": "Django URL: admin_panel:p_login", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django url: admin_panel:p_login", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_url_admin_panel_store", + "label": "Django URL: admin_panel:store", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "django url: admin_panel:store", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "form_field_password", + "label": "Form Field: password", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "form field: password", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "form_field_storename", + "label": "Form Field: storeName", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "form field: storename", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "form_field_username", + "label": "Form Field: username", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "form field: username", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "product_property_mojodi", + "label": "Product Property: mojodi", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "product property: mojodi", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "product_property_product_name", + "label": "Product Property: product_name", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "product property: product_name", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "template_variable_message", + "label": "Template Variable: message", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "template variable: message", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "template_variable_productsum", + "label": "Template Variable: productSum", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "template variable: productsum", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "template_variable_s_id", + "label": "Template Variable: s_id", + "_origin": "semantic", + "community": 10, + "community_name": "admin_panel/storeBK1.html", + "file_type": "concept", + "norm_label": "template variable: s_id", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "admin_panel_templates_admin_panel_bedehbk", + "label": "admin_panel/templates/admin_panel/bedehiBK.html", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/bedehibk.html", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeraction", + "label": "admin_panel/templates/admin_panel/customerAction.html", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customeraction.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeractioninc_html", + "label": "admin_panel/templates/admin_panel/customerActionInc.html", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customeractioninc.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_urls_customernewaction", + "label": "admin_panel:customerNewAction URL", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "admin_panel:customernewaction url", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "concept_action_model", + "label": "Action Data Model", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "action data model", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "concept_user", + "label": "User Data Model", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "user data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "django_template_tag_static", + "label": "Django Static Tag", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "django static tag" + }, + { + "id": "django_template_tag_url", + "label": "Django 'url' template tag", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "django 'url' template tag", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_bulma", + "label": "Bulma CSS", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "bulma css", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_datatables", + "label": "DataTables.js", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "datatables.js", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_pdatepicker", + "label": "pDatepicker.js", + "_origin": "semantic", + "community": 12, + "community_name": "admin_panel/templates/admin_panel/customerAction.html", + "file_type": "concept", + "norm_label": "pdatepicker.js", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "django_templatetags_tojalali", + "label": "toJalali", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "code", + "norm_label": "tojalali", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 60 + }, + { + "id": "concept_articl_model", + "label": "Articl Model", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "articl model", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "concept_customer_model", + "label": "Customer Model", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "customer model", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "django_context_variable_articls", + "label": "articls", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "articls", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "id": "django_urls_admin_panel_bedehi", + "label": "admin_panel:bedehi", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "admin_panel:bedehi", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 10 + }, + { + "id": "django_urls_admin_panel_bedehikhadamat", + "label": "admin_panel:bedehiKhadamat", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "admin_panel:bedehikhadamat", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 11 + }, + { + "id": "django_urls_admin_panel_bedehinasb", + "label": "admin_panel:bedehiNasb", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "admin_panel:bedehinasb", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 12 + }, + { + "id": "django_urls_admin_panel_customer", + "label": "admin_panel:customer", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "concept", + "norm_label": "admin_panel:customer", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "id": "admin_panel_templates_admin_panel_bedehi_html", + "label": "admin_panel/templates/admin_panel/bedehi.html", + "_origin": "semantic", + "community": 14, + "community_name": "admin_panel/templates/admin_panel/bedehi.html", + "file_type": "document", + "norm_label": "admin_panel/templates/admin_panel/bedehi.html", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerbase", + "label": "admin_panel/templates/admin_panel/customerBase.html", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerbase.html", + "source_file": "admin_panel/templates/admin_panel/customerBase.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerid", + "label": "admin_panel/templates/admin_panel/customerID.html", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerid.html", + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "id": "admin_panel_views_customer_delete", + "label": "/panel/customer/{id}/del", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "code", + "norm_label": "/panel/customer/{id}/del", + "source_file": null + }, + { + "id": "concept_url_admin_panel_newfactor", + "label": "URL: admin_panel:newFactor", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "url: admin_panel:newfactor", + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "id": "django_contrib_auth_models_permission", + "label": "Django Permission", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "django permission", + "source_file": null + }, + { + "id": "django_templatetags_static", + "label": "Django Static Files", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "django static files", + "source_file": null + }, + { + "id": "javascript_jquery", + "label": "jQuery", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "jquery", + "source_file": null + }, + { + "id": "javascript_pdatepicker", + "label": "pDatepicker", + "_origin": "semantic", + "community": 17, + "community_name": "admin_panel/templates/admin_panel/customerBase.html", + "file_type": "concept", + "norm_label": "pdatepicker", + "source_file": null + }, + { + "id": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "label": "hesabdariCheckPass.html", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "hesabdaricheckpass.html", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "label": "hesabdariResidNashode.html", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "hesabdariresidnashode.html", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "lib_jquery", + "label": "jQuery", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "jquery", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "verification": "unverified" + }, + { + "id": "lib_pdatepicker", + "label": "pDatepicker JS Library", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "pdatepicker js library", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags", + "label": "custom_tags", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "custom_tags", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags_tocurrency", + "label": "toCurrency", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "tocurrency", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags_tojalali", + "label": "toJalali", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "code", + "norm_label": "tojalali", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "admin_panel_urls_customernew", + "label": "admin_panel:customerNew", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "admin_panel:customernew", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "admin_panel_urls_pardakhtnesiye", + "label": "admin_panel:pardakhtNesiye", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "admin_panel:pardakhtnesiye", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "admin_panel_urls_passcheck", + "label": "/panel/passCheck/", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "/panel/passcheck/", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "concept_all_sarresid", + "label": "all_sarresid", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "all_sarresid", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "django_context_variable_mandehesabkp", + "label": "mandehesabKP", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "mandehesabkp", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 18 + }, + { + "id": "django_permissions_admin_panel_viewreportmali", + "label": "admin_panel.ViewReportMali", + "_origin": "semantic", + "community": 22, + "community_name": "hesabdariResidNashode.html", + "file_type": "concept", + "norm_label": "admin_panel.viewreportmali", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 4 + }, + { + "id": "django_templatetags_custom_tags", + "label": "custom_tags", + "_origin": "semantic", + "community": 29, + "community_name": "admin_panel/entezar.html", + "file_type": "code", + "norm_label": "custom_tags", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 2 + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html", + "label": "Customer ID Backup/New Factor Template", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "customer id backup/new factor template", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_all_products", + "label": "all_products (JS variable)", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "all_products (js variable)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "label": "buildOrderList (JS function)", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "buildorderlist (js function)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "label": "orderList (JS variable)", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "orderlist (js variable)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "label": "customerIDFactorBackup.html", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "customeridfactorbackup.html", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "label": "Client-side script in customerIDFactorBackup.html", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "client-side script in customeridfactorbackup.html", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "django_contrib_staticfiles_templatetags_static", + "label": "django static tag library", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "code", + "norm_label": "django static tag library", + "source_file": null + }, + { + "id": "admin_panel_urls_customer", + "label": "URL: customer detail", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "url: customer detail" + }, + { + "id": "admin_panel_urls_customeredit", + "label": "URL: admin_panel:customerEdit", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "url: admin_panel:customeredit", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "api_endpoint_panel_customer_del", + "label": "/panel/customer/{id}/del API Endpoint", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "/panel/customer/{id}/del api endpoint" + }, + { + "id": "api_endpoint_panel_productmojodi", + "label": "/panel/productMojodi/ API Endpoint", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "/panel/productmojodi/ api endpoint" + }, + { + "id": "concept_factor", + "label": "Factor Data Model", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "factor data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "concept_permission", + "label": "Django Permissions", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "django permissions" + }, + { + "id": "concept_product", + "label": "Product Data Model", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "product data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "concept_productcategory", + "label": "Product Category Data Model", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "product category data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "django_template_filter_tojalali", + "label": "toJalali Template Filter", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "tojalali template filter" + }, + { + "id": "django_template_tag_custom_tags", + "label": "Django Custom Tags", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "django custom tags" + }, + { + "id": "django_url_admin_panel_customeredit", + "label": "admin_panel:customerEdit URL", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "admin_panel:customeredit url" + }, + { + "id": "django_url_admin_panel_customerfactors", + "label": "admin_panel:customerFactors URL", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "admin_panel:customerfactors url" + }, + { + "id": "django_url_admin_panel_newfactor", + "label": "admin_panel:newFactor URL", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "admin_panel:newfactor url" + }, + { + "id": "django_url_admin_panel_productsjson", + "label": "admin_panel:productsJson URL", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "admin_panel:productsjson url" + }, + { + "id": "js_library_pdatepicker", + "label": "pDatepicker JS Library", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "pdatepicker js library" + }, + { + "id": "panel_urls_productmojodi", + "label": "URL: /panel/productMojodi/", + "_origin": "semantic", + "community": 4, + "community_name": "Customer ID Backup/New Factor Template", + "file_type": "concept", + "norm_label": "url: /panel/productmojodi/", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "admin_panel_customer_action_inc", + "label": "Customer Action Include", + "_origin": "semantic", + "community": 50, + "community_name": "Customer Action Include", + "file_type": "code", + "norm_label": "customer action include", + "rationale": "Reusable component for displaying and filtering customer actions.", + "source_file": "admin_panel/templates/admin_panel/customerActionInc.html" + }, + { + "id": "admin_panel_customer_base_new", + "label": "New Customer Base Template", + "_origin": "semantic", + "community": 51, + "community_name": "New Customer Base Template", + "file_type": "code", + "norm_label": "new customer base template", + "rationale": "Base template for customer-specific views with dynamic phone management.", + "source_file": "admin_panel/templates/admin_panel/customerBaseNew.html" + }, + { + "id": "admin_panel_customer_customernazarinc", + "label": "Customer Feedback Partial", + "_origin": "semantic", + "community": 52, + "community_name": "Customer Feedback Partial", + "file_type": "code", + "norm_label": "customer feedback partial", + "rationale": "Reusable component for displaying and editing customer actions, results, and satisfaction grades.", + "source_file": "admin_panel/templates/admin_panel/customer/customerNazarInc.html" + }, + { + "id": "admin_panel_customer_factor", + "label": "Customer Factor Detail", + "_origin": "semantic", + "community": 53, + "community_name": "Customer Factor Detail", + "file_type": "code", + "norm_label": "customer factor detail", + "rationale": "Displays specific invoice details and handles cancellation logic.", + "source_file": "admin_panel/templates/admin_panel/customerFactor.html" + }, + { + "id": "admin_panel_customer_hesabdari", + "label": "Customer Accounting Template", + "_origin": "semantic", + "community": 54, + "community_name": "Customer Accounting Template", + "file_type": "code", + "norm_label": "customer accounting template", + "rationale": "Manages customer financial transactions and balance.", + "source_file": "admin_panel/templates/admin_panel/customerHesabDari.html" + }, + { + "id": "admin_panel_customer_id_factor", + "label": "Customer Factor List", + "_origin": "semantic", + "community": 55, + "community_name": "Customer Factor List", + "file_type": "code", + "norm_label": "customer factor list", + "rationale": "Lists and filters invoices for a specific customer.", + "source_file": "admin_panel/templates/admin_panel/customerIDFactor.html" + }, + { + "id": "admin_panel_customer_nazar", + "label": "Customer Feedback Page", + "_origin": "semantic", + "community": 56, + "community_name": "Customer Feedback Page", + "file_type": "code", + "norm_label": "customer feedback page", + "rationale": "Page wrapper for the customer feedback/action partial.", + "source_file": "admin_panel/templates/admin_panel/customer/nazar.html" + }, + { + "id": "admin_panel_templates_admin_panel_actionlist", + "label": "Action List Template", + "_origin": "semantic", + "community": 60, + "community_name": "Action List Template", + "file_type": "code", + "norm_label": "action list template", + "rationale": "Displays a list of tasks/actions for users.", + "source_file": "admin_panel/templates/admin_panel/ActionList.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerNew", + "label": "Customer New Factor", + "_origin": "semantic", + "community": 62, + "community_name": "Customer New Factor", + "file_type": "code", + "norm_label": "customer new factor", + "rationale": "Template for creating new customer factors/invoices with product selection and payment types.", + "source_file": "admin_panel/templates/admin_panel/customerNew.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerNew2", + "label": "Customer New Factor V2", + "_origin": "semantic", + "community": 63, + "community_name": "Customer New Factor V2", + "file_type": "code", + "norm_label": "customer new factor v2", + "rationale": "Updated version of factor creation including discount and previous balance fields.", + "source_file": "admin_panel/templates/admin_panel/customerNew2.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerRezayat", + "label": "Customer Satisfaction List", + "_origin": "semantic", + "community": 64, + "community_name": "Customer Satisfaction List", + "file_type": "code", + "norm_label": "customer satisfaction list", + "source_file": "admin_panel/templates/admin_panel/customerRezayat.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerRezayatinc", + "label": "Customer Satisfaction Partial", + "_origin": "semantic", + "community": 65, + "community_name": "Customer Satisfaction Partial", + "file_type": "code", + "norm_label": "customer satisfaction partial", + "rationale": "Reusable component for displaying and editing customer satisfaction/action results.", + "source_file": "admin_panel/templates/admin_panel/customerRezayatinc.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerSarresid", + "label": "Customer Check/Debt Management", + "_origin": "semantic", + "community": 66, + "community_name": "Customer Check/Debt Management", + "file_type": "code", + "norm_label": "customer check/debt management", + "rationale": "Comprehensive interface for managing checks, promissory notes, and Sayyad system inquiries.", + "source_file": "admin_panel/templates/admin_panel/customerSarresid.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerbasenew_html", + "label": "admin_panel/templates/admin_panel/customerBaseNew.html", + "_origin": "semantic", + "community": 67, + "community_name": "admin_panel/templates/admin_panel/customerBaseNew.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerbasenew.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_templates_admin_panel_customers", + "label": "Customer List", + "_origin": "semantic", + "community": 68, + "community_name": "Customer List", + "file_type": "code", + "norm_label": "customer list", + "source_file": "admin_panel/templates/admin_panel/customers.html" + }, + { + "id": "admin_panel_templates_admin_panel_entezarbk", + "label": "admin_panel/templates/admin_panel/entezarBK.html", + "_origin": "semantic", + "community": 69, + "community_name": "admin_panel/templates/admin_panel/entezarBK.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/entezarbk.html", + "rationale": "This appears to be a backup or static prototype version of a page, indicated by the 'BK' suffix and the lack of Django template inheritance.", + "source_file": "admin_panel/templates/admin_panel/entezarBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_base", + "label": "admin_panel/base.html", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/base.html", + "rationale": "Main layout and navigation for the admin panel.", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "admin_panel_templates_admin_panel_basehesabdari", + "label": "admin_panel/templates/admin_panel/baseHesabdari.html", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/basehesabdari.html", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "admin_panel_templates_admin_panel_basestore", + "label": "admin_panel/templates/admin_panel/baseStore.html", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/basestore.html", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerfactorbackup", + "label": "admin_panel/templates/admin_panel/customerFactorBackup.html", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerfactorbackup.html", + "rationale": "Filename suggests this is a backup version.", + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "id": "static_admin_panel_bulma_min_css", + "label": "admin_panel/bulma.min.css", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/bulma.min.css", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_datatables_datatables_min_js", + "label": "admin_panel/DataTables/datatables.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/datatables/datatables.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_kamadatepicker_min_js", + "label": "admin_panel/kamadatepicker.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/kamadatepicker.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_persian-datepicker_min_js", + "label": "admin_panel/persian-datepicker.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/persian-datepicker.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_style_css", + "label": "admin_panel/style.css", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "code", + "norm_label": "admin_panel/style.css", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_django_custom_tags", + "label": "Django Custom Tags: custom_tags", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "django custom tags: custom_tags", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_actionlistusertoday", + "label": "URL: admin_panel:ActionListUserToday", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:actionlistusertoday", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_bedehi", + "label": "URL: admin_panel:bedehi", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:bedehi", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_customers", + "label": "URL: admin_panel:customers", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:customers", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html", + "source_location": [ + 29, + 29 + ] + }, + { + "id": "concept_url_admin_panel_entezar", + "label": "URL: admin_panel:entezar", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:entezar", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_hesabdari", + "label": "URL: admin_panel:hesabdari", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:hesabdari", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_hesabdari_residnashone", + "label": "URL: admin_panel:hesabdari_residnashone", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:hesabdari_residnashone", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_index", + "label": "URL: admin_panel:index", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:index", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_operations", + "label": "URL: admin_panel:operations", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:operations", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_p_logout", + "label": "URL: admin_panel:p_logout", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:p_logout", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_productadd", + "label": "URL: admin_panel:productAdd", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:productadd", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_rezayat", + "label": "URL: admin_panel:rezayat", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:rezayat", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_store", + "label": "URL: admin_panel:store", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:store", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_store_transfers", + "label": "URL: admin_panel:store_transfers", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:store_transfers", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_stores", + "label": "URL: admin_panel:stores", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: admin_panel:stores", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_panel_customer_factor_del", + "label": "URL: /panel/customer/{id}/factor/{id}/del", + "_origin": "semantic", + "community": 7, + "community_name": "admin_panel/templates/admin_panel/baseHesabdari.html", + "file_type": "concept", + "norm_label": "url: /panel/customer/{id}/factor/{id}/del", + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_financial_dashboard", + "label": "Financial Dashboard", + "_origin": "semantic", + "community": 70, + "community_name": "Financial Dashboard", + "file_type": "code", + "norm_label": "financial dashboard", + "rationale": "High-level management view for auditing debts, sales trends, and inventory leaks.", + "source_file": "admin_panel/templates/admin_panel/financial_dashboard.html" + }, + { + "id": "admin_panel_templates_admin_panel_hesabdari", + "label": "Accounting Main View", + "_origin": "semantic", + "community": 71, + "community_name": "Accounting Main View", + "file_type": "code", + "norm_label": "accounting main view", + "source_file": "admin_panel/templates/admin_panel/hesabdari.html" + }, + { + "id": "admin_panel_templates_admin_panel_index", + "label": "admin_panel/templates/admin_panel/index.html", + "_origin": "semantic", + "community": 72, + "community_name": "admin_panel/templates/admin_panel/index.html", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/index.html", + "rationale": "This appears to be a static prototype version of a page, indicated by the lack of Django template tags and inheritance.", + "source_file": "admin_panel/templates/admin_panel/index.html" + }, + { + "id": "admin_panel_templates_admin_panel_newOperation", + "label": "New Inventory Operation", + "_origin": "semantic", + "community": 73, + "community_name": "New Inventory Operation", + "file_type": "code", + "norm_label": "new inventory operation", + "source_file": "admin_panel/templates/admin_panel/newOperation.html" + }, + { + "id": "admin_panel_templates_admin_panel_operations", + "label": "Inventory Operations List", + "_origin": "semantic", + "community": 74, + "community_name": "Inventory Operations List", + "file_type": "code", + "norm_label": "inventory operations list", + "source_file": "admin_panel/templates/admin_panel/operations.html" + }, + { + "id": "admin_panel_templates_admin_panel_operationsbk", + "label": "Operations Backup Template", + "_origin": "semantic", + "community": 75, + "community_name": "Operations Backup Template", + "file_type": "code", + "norm_label": "operations backup template", + "rationale": "Template for viewing store operation logs (in/out) and creating new stores.", + "source_file": "admin_panel/templates/admin_panel/operationsBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_report", + "label": "Financial Report Template", + "_origin": "semantic", + "community": 76, + "community_name": "Financial Report Template", + "file_type": "code", + "norm_label": "financial report template", + "rationale": "Generates financial reports with filters for payment type, user, and date range.", + "source_file": "admin_panel/templates/admin_panel/report.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_debtors_no_vosol", + "label": "Debt Collection Dashboard", + "_origin": "semantic", + "community": 77, + "community_name": "Debt Collection Dashboard", + "file_type": "code", + "norm_label": "debt collection dashboard", + "rationale": "Intelligent dashboard for tracking abandoned debt collections and overdue amounts.", + "source_file": "admin_panel/templates/admin_panel/report_debtors_no_vosol.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_inventory_movements", + "label": "Inventory Movement Report", + "_origin": "semantic", + "community": 78, + "community_name": "Inventory Movement Report", + "file_type": "code", + "norm_label": "inventory movement report", + "rationale": "Detailed report on stock ins/outs with movement type classification (Sale, Warranty, etc.).", + "source_file": "admin_panel/templates/admin_panel/report_inventory_movements.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_rezayat", + "label": "Customer Satisfaction Dashboard", + "_origin": "semantic", + "community": 79, + "community_name": "Customer Satisfaction Dashboard", + "file_type": "code", + "norm_label": "customer satisfaction dashboard", + "rationale": "Dashboard for monitoring customer feedback, average grades, and follow-up for unhappy customers.", + "source_file": "admin_panel/templates/admin_panel/report_rezayat.html" + }, + { + "id": "admin_panel_templates_admin_panel_reportchecknesiye", + "label": "Check and Credit Report Template", + "_origin": "semantic", + "community": 80, + "community_name": "Check and Credit Report Template", + "file_type": "code", + "norm_label": "check and credit report template", + "rationale": "Specialized report for tracking checks and credit (nesiye) maturity dates.", + "source_file": "admin_panel/templates/admin_panel/reportCheckNesiye.html" + }, + { + "id": "admin_panel_templates_admin_panel_rezayat", + "label": "Satisfaction List Template", + "_origin": "semantic", + "community": 81, + "community_name": "Satisfaction List Template", + "file_type": "code", + "norm_label": "satisfaction list template", + "rationale": "Legacy or list-view template for customer satisfaction records.", + "source_file": "admin_panel/templates/admin_panel/rezayat.html", + "verification": "unverified" + }, + { + "id": "admin_panel_templates_admin_panel_store", + "label": "Store Inventory Template", + "_origin": "semantic", + "community": 82, + "community_name": "Store Inventory Template", + "file_type": "code", + "norm_label": "store inventory template", + "rationale": "Main interface for viewing physical stock, reserved items, and editing product details.", + "source_file": "admin_panel/templates/admin_panel/store.html" + }, + { + "id": "admin_panel_templates_admin_panel_store_transfers", + "label": "Store Transfers Template", + "_origin": "semantic", + "community": 83, + "community_name": "Store Transfers Template", + "file_type": "code", + "norm_label": "store transfers template", + "rationale": "Manages inter-store inventory transfers, including approval, rejection, and cancellation flows.", + "source_file": "admin_panel/templates/admin_panel/store_transfers.html" + }, + { + "id": "admin_panel_templates_admin_panel_stores", + "label": "Stores List Template", + "_origin": "semantic", + "community": 84, + "community_name": "Stores List Template", + "file_type": "code", + "norm_label": "stores list template", + "rationale": "High-level list of all available warehouses/stores.", + "source_file": "admin_panel/templates/admin_panel/stores.html" + }, + { + "id": "admin_panel_urls_newstore", + "label": "URL: newStore", + "_origin": "semantic", + "community": 87, + "community_name": "URL: newStore", + "file_type": "concept", + "norm_label": "url: newstore" + }, + { + "id": "admin_panel_urls_processtransferaction", + "label": "URL: process_transfer_action", + "_origin": "semantic", + "community": 88, + "community_name": "URL: process_transfer_action", + "file_type": "concept", + "norm_label": "url: process_transfer_action" + }, + { + "id": "admin_panel_urls_rezayatedit", + "label": "URL: rezayatEdit", + "_origin": "semantic", + "community": 89, + "community_name": "URL: rezayatEdit", + "file_type": "concept", + "norm_label": "url: rezayatedit" + }, + { + "id": "requirements2_txt", + "label": "Extended Requirements File", + "_origin": "semantic", + "community": 91, + "community_name": "Extended Requirements File", + "file_type": "code", + "norm_label": "extended requirements file", + "source_file": "requirements2.txt" + }, + { + "id": "requirements_txt", + "label": "Requirements File", + "_origin": "semantic", + "community": 92, + "community_name": "Requirements File", + "file_type": "code", + "norm_label": "requirements file", + "source_file": "requirements.txt", + "verification": "unverified" + }, + { + "id": "django_core_exceptions", + "label": "django_core_exceptions", + "community": 0, + "community_name": "views/store.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_exceptions", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_paginator", + "label": "django_core_paginator", + "community": 0, + "community_name": "views/store.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_paginator", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils_translation", + "label": "django_utils_translation", + "community": 0, + "community_name": "views/store.py", + "external": true, + "file_type": "concept", + "norm_label": "django_utils_translation", + "source_file": "", + "type": "external" + }, + { + "id": "argparse", + "label": "argparse", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "argparse", + "source_file": "", + "type": "external" + }, + { + "id": "csv", + "label": "csv", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "csv", + "source_file": "", + "type": "external" + }, + { + "id": "dataclasses", + "label": "dataclasses", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "dataclasses", + "source_file": "", + "type": "external" + }, + { + "id": "django", + "label": "django", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "django", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_asgi", + "label": "django_core_asgi", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_asgi", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_wsgi", + "label": "django_core_wsgi", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_wsgi", + "source_file": "", + "type": "external" + }, + { + "id": "django_db_models", + "label": "django_db_models", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models", + "source_file": "", + "type": "external" + }, + { + "id": "django_db_models_functions", + "label": "django_db_models_functions", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models_functions", + "source_file": "", + "type": "external" + }, + { + "id": "os", + "label": "os", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "os", + "source_file": "", + "type": "external" + }, + { + "id": "sys", + "label": "sys", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "sys", + "source_file": "", + "type": "external" + }, + { + "id": "typing", + "label": "typing", + "community": 1, + "community_name": "project_tree.py", + "external": true, + "file_type": "concept", + "norm_label": "typing", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth_models", + "label": "django_contrib_auth_models", + "community": 13, + "community_name": "User", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth_models", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib", + "label": "django_contrib", + "community": 15, + "community_name": "django_contrib", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib", + "source_file": "", + "type": "external" + }, + { + "id": "django_test", + "label": "django_test", + "community": 16, + "community_name": "models/__init__.py", + "external": true, + "file_type": "concept", + "norm_label": "django_test", + "source_file": "", + "type": "external" + }, + { + "id": "django_urls", + "label": "django_urls", + "community": 16, + "community_name": "models/__init__.py", + "external": true, + "file_type": "concept", + "norm_label": "django_urls", + "source_file": "", + "type": "external" + }, + { + "id": "itertools", + "label": "itertools", + "community": 16, + "community_name": "models/__init__.py", + "external": true, + "file_type": "concept", + "norm_label": "itertools", + "source_file": "", + "type": "external" + }, + { + "id": "boto3", + "label": "boto3", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "boto3", + "source_file": "", + "type": "external" + }, + { + "id": "botocore_config", + "label": "botocore_config", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "botocore_config", + "source_file": "", + "type": "external" + }, + { + "id": "botocore_exceptions", + "label": "botocore_exceptions", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "botocore_exceptions", + "source_file": "", + "type": "external" + }, + { + "id": "contextlib", + "label": "contextlib", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "contextlib", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_management_base", + "label": "django_core_management_base", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_management_base", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils", + "label": "django_utils", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "django_utils", + "source_file": "", + "type": "external" + }, + { + "id": "fcntl", + "label": "fcntl", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "fcntl", + "source_file": "", + "type": "external" + }, + { + "id": "logging", + "label": "logging", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "logging", + "source_file": "", + "type": "external" + }, + { + "id": "pathlib", + "label": "pathlib", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "pathlib", + "source_file": "", + "type": "external" + }, + { + "id": "requests", + "label": "requests", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "requests", + "source_file": "", + "type": "external" + }, + { + "id": "shutil", + "label": "shutil", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "shutil", + "source_file": "", + "type": "external" + }, + { + "id": "signal", + "label": "signal", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "signal", + "source_file": "", + "type": "external" + }, + { + "id": "sqlite3", + "label": "sqlite3", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "sqlite3", + "source_file": "", + "type": "external" + }, + { + "id": "time", + "label": "time", + "community": 2, + "community_name": "sqlite_db_backup.py", + "external": true, + "file_type": "concept", + "norm_label": "time", + "source_file": "", + "type": "external" + }, + { + "id": "django_apps", + "label": "django_apps", + "community": 24, + "community_name": "django_apps", + "external": true, + "file_type": "concept", + "norm_label": "django_apps", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils_timezone", + "label": "django_utils_timezone", + "community": 25, + "community_name": "0002_auto_20220114_1616.py", + "external": true, + "file_type": "concept", + "norm_label": "django_utils_timezone", + "source_file": "", + "type": "external" + }, + { + "id": "django_db", + "label": "django_db", + "community": 3, + "community_name": "django_db", + "external": true, + "file_type": "concept", + "norm_label": "django_db", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_validators", + "label": "django_core_validators", + "community": 30, + "community_name": "views/finance.py", + "external": true, + "file_type": "concept", + "norm_label": "django_core_validators", + "source_file": "", + "type": "external" + }, + { + "id": "json", + "label": "json", + "community": 30, + "community_name": "views/finance.py", + "external": true, + "file_type": "concept", + "norm_label": "json", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth", + "label": "django_contrib_auth", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth", + "source_file": "", + "type": "external" + }, + { + "id": "django_http", + "label": "django_http", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_http", + "source_file": "", + "type": "external" + }, + { + "id": "django_shortcuts", + "label": "django_shortcuts", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_shortcuts", + "source_file": "", + "type": "external" + }, + { + "id": "django_views_decorators_csrf", + "label": "django_views_decorators_csrf", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_views_decorators_csrf", + "source_file": "", + "type": "external" + }, + { + "id": "django_views_decorators_http", + "label": "django_views_decorators_http", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "django_views_decorators_http", + "source_file": "", + "type": "external" + }, + { + "id": "persiantools", + "label": "persiantools", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "persiantools", + "source_file": "", + "type": "external" + }, + { + "id": "persiantools_jdatetime", + "label": "persiantools_jdatetime", + "community": 5, + "community_name": "views/customers.py", + "external": true, + "file_type": "concept", + "norm_label": "persiantools_jdatetime", + "source_file": "", + "type": "external" + }, + { + "id": "asgiref_sync", + "label": "asgiref_sync", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "asgiref_sync", + "source_file": "", + "type": "external" + }, + { + "id": "asyncio", + "label": "asyncio", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "asyncio", + "source_file": "", + "type": "external" + }, + { + "id": "base64", + "label": "base64", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "base64", + "source_file": "", + "type": "external" + }, + { + "id": "cv2", + "label": "cv2", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "cv2", + "source_file": "", + "type": "external" + }, + { + "id": "ddddocr", + "label": "ddddocr", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "ddddocr", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth_decorators", + "label": "django_contrib_auth_decorators", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth_decorators", + "source_file": "", + "type": "external" + }, + { + "id": "numpy", + "label": "numpy", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "numpy", + "source_file": "", + "type": "external" + }, + { + "id": "playwright_async_api", + "label": "playwright_async_api", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "playwright_async_api", + "source_file": "", + "type": "external" + }, + { + "id": "re", + "label": "re", + "community": 6, + "community_name": "cheque_inquiry.py", + "external": true, + "file_type": "concept", + "norm_label": "re", + "source_file": "", + "type": "external" + }, + { + "id": "django_db_models_deletion", + "label": "django_db_models_deletion", + "community": 8, + "community_name": "django_db_models_deletion", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models_deletion", + "source_file": "", + "type": "external" + }, + { + "id": "django_conf", + "label": "django_conf", + "community": 9, + "community_name": "django_conf", + "external": true, + "file_type": "concept", + "norm_label": "django_conf", + "source_file": "", + "type": "external" + }, + { + "id": "django_conf_urls_static", + "label": "django_conf_urls_static", + "community": 9, + "community_name": "django_conf", + "external": true, + "file_type": "concept", + "norm_label": "django_conf_urls_static", + "source_file": "", + "type": "external" + } + ], + "links": [ + { + "source": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_handle", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_handle", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_check_target_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_check_source_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "admin_panel_services_check_target_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "target": "admin_panel_views_helpers_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L258", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "target": "json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_parse_cheque_result_html", + "target": "re", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "asyncio", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "re", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "admin_panel_views_cheque_inquiry_parse_cheque_result_html", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "target": "json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "base64", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "numpy", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "cv2", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "ddddocr", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "target": "re", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerfactors", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/customers.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L172", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L179", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_helpers_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_inventory_movements_report", + "target": "admin_panel_views_helpers_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rezayat_dashboard", + "target": "json", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L950", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operation", + "target": "admin_panel_views_helpers_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L323", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operation", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L347", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L218", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_services_reject_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L226", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L230", + "weight": 1.0 + }, + { + "source": "project_tree_generate_snapshot", + "target": "project_tree_counts", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L197", + "weight": 1.0 + }, + { + "source": "project_tree_generate_snapshot", + "target": "project_tree_format_header", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L199", + "weight": 1.0 + }, + { + "source": "project_tree_generate_snapshot", + "target": "project_tree_write_tree", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L205", + "weight": 1.0 + }, + { + "source": "project_tree_main", + "target": "project_tree_parse_args", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "project_tree_main", + "target": "os", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L252", + "weight": 1.0 + }, + { + "source": "project_tree_main", + "target": "project_tree_generate_snapshot", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L253", + "weight": 1.0 + }, + { + "source": "project_tree_non_negative_integer", + "target": "argparse", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L218", + "weight": 1.0 + }, + { + "source": "project_tree_normalized_path", + "target": "os", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "project_tree_parse_args", + "target": "argparse", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L225", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "os", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "project_tree_warn", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "project_tree_is_excluded_file", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L125", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "project_tree_normalized_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "os", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree_visit", + "target": "project_tree_sorted_entries", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree_visit", + "target": "project_tree_normalized_path", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L156", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree_visit", + "target": "project_tree_write_tree_visit", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L168", + "weight": 1.0 + }, + { + "source": "reconciliation_tool_run_audit", + "target": "csv", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "reconciliation_tool.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "tests_factories_make_category", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "tests_factories_make_customer", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "tests_factories_make_product", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L71", + "weight": 1.0 + }, + { + "source": "tests_factories_make_product", + "target": "tests_factories_make_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "tests_factories_make_store", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "tests_factories_make_user", + "target": "tests_factories_next", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/factories.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests_setup", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests_test_edit_customer_replaces_phones", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests_setup", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L62", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests_test_customer_with_financial_history_is_never_deleted", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests_test_customer_without_history_is_deactivated", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_customers.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests_setup", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests_test_instore_transaction_protects_its_factor", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests_test_instore_transaction_protects_its_factor", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_setup", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_test_new_factor2_creates_factor_article_and_stock_out", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_oversell_without_creating_factor", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_factors.py", + "source_location": "L107", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_setup", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_setup", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_deleting_a_row_creates_history_and_reduces_stock", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_deleting_a_row_creates_history_and_reduces_stock", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_editing_a_row_updates_stock_and_history", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_editing_a_row_updates_stock_and_history", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_initial_in_records_history_and_stock", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_initial_in_records_history_and_stock", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "target": "admin_panel_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_setup", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_setup", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_setup", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_setup", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L106", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L195", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L199", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L148", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L153", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_cancel_by_requester", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L179", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_cancel_by_requester", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L183", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_rejects_insufficient_stock", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_rejects_non_positive_quantity", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_rejects_same_store", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L130", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_transfer_request_pending", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_create_transfer_request_pending", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_double_approval_is_rejected", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_double_approval_is_rejected", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_permission_denied_for_outsider", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_permission_denied_for_outsider", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L189", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L167", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "target": "admin_panel_services_reject_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "target": "tests_factories_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_inventory.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests_test_url_name_snapshot_unchanged", + "target": "tests_test_urls_contract_urlcontracttests_all_names", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_urls_contract.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_endpoints", + "target": "tests_test_view_smoke_viewsmoketests_now_ms", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_user", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_store", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_category", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_product", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_stock_in", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "target": "tests_factories_make_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_test_every_endpoint_responds_without_server_error", + "target": "tests_test_view_smoke_viewsmoketests_endpoints", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L209", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests_test_every_endpoint_responds_without_server_error", + "target": "tests_test_view_smoke_viewsmoketests_url", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "tests/test_view_smoke.py", + "source_location": "L210", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "project_tree_write_tree_visit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "project_tree.py", + "source_location": "L150", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storeroomadmin", + "target": "register", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/admin.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storetransferrequestadmin", + "target": "register", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/admin.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p_remove_query_param", + "target": "filter", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlist", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlistall", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L154", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlisttoday", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L161", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlistuser", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_actionlistusertoday", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customeraction", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customereditaction", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customernazar", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customernewaction", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_rezayat", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L200", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_rezayatedit", + "target": "admin_panel_views_actions_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/actions.py", + "source_location": "L232", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "target": "admin_panel_views_cheque_inquiry_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L249", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "target": "admin_panel_views_cheque_inquiry_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "target": "admin_panel_views_cheque_inquiry_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L226", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "target": "admin_panel_views_cheque_inquiry_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L227", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customer", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerdel", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L365", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerdel", + "target": "admin_panel_views_customers_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L366", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customeredit", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L261", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerfactor", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L184", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerfactors", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerhesabdari", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L414", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerhesabdariadd", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L441", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customernew", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customernew2", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customers", + "target": "csrf_exempt", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customers", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customersadd", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L219", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerssearch", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_entezar", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L304", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_sarresidh", + "target": "admin_panel_views_customers_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/customers.py", + "source_location": "L430", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_factordel", + "target": "admin_panel_views_factors_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L365", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_factordel", + "target": "admin_panel_views_factors_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L366", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_factordel", + "target": "admin_panel_views_factors_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L367", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_views_factors_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_factors_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/factors.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_addsarresid", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L770", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_addsarresid", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L771", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehi", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L516", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehi", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L517", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehikhadamat", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L657", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehikhadamat", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L658", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehinasb", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L674", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_bedehinasb", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L675", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_financial_dashboard", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L316", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_financial_dashboard", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L317", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L536", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L537", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_checkpass", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L592", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_checkpass", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L593", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_checkpassfail", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L612", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_checkpassfail", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L613", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_residnashone", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L636", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_hesabdari_residnashone", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L637", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_inventory_movements_report", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L233", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_inventory_movements_report", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_pardakhtnesiye", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L862", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_pardakhtnesiye", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L863", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_passcheck", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L690", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_passcheck", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L691", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_report", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_report", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_report_debtors_no_vosol", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_report_debtors_no_vosol", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rezayat_dashboard", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L925", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rezayat_dashboard", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L926", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_update_check_info", + "target": "admin_panel_views_finance_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L720", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_update_check_info", + "target": "admin_panel_views_finance_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L721", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_update_check_info", + "target": "admin_panel_views_finance_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/finance.py", + "source_location": "L722", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newoperation", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L151", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newoperation", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L152", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newstore", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L249", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newstore", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L250", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operation", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L313", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operation", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L314", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operationproduct", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operationproduct", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operations", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_operations", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L200", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_process_transfer_action", + "target": "admin_panel_views_store_py_require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productadd", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L260", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productadd", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L261", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productdel", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L306", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productdel", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L307", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productedit", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L287", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productedit", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L288", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productmojodi", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L434", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_store", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_store", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_store_transfers", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_store_transfers", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L163", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_stores", + "target": "admin_panel_views_store_py_login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_stores", + "target": "admin_panel_views_store_py_permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views/store.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers", + "relation": "re_exports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "export", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "direntry", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "generic_arg", + "source_file": "project_tree.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "time", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "contextlib", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "requests", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "sqlite3", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "shutil", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "fcntl", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "signal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "boto3", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "django_core_validators", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "admin_panel_models_store_productstockhistory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/products.py", + "source_location": "L73", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "asyncio", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "base64", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "re", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "cv2", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "ddddocr", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "numpy", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services_approve_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services_create_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services_reject_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_helpers_safe_int", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "csv", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "khatibi_asgi", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/asgi.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "admin_panel_init", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/wsgi.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "manage", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "manage.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "manage", + "target": "sys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "manage.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "sys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "argparse", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "csv", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "itertools", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/factories.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_factories_make_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_factories_make_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_current_stock", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_make_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_make_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_make_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_make_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories_stock_in", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_current_stock", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_make_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_make_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_make_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories_stock_in", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_approve_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_create_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_get_product_current_stock", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services_reject_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract", + "target": "admin_panel_models_init", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models_contract.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_category", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_store", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_make_user", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories_stock_in", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_admin", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/admin.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_apps", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/apps.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/models.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/admin.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/admin.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_apps", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/apps.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "botocore_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "botocore_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "datetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0004_factor_paytype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0005_auto_20220121_2054", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0006_auto_20220121_2100", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0009_remove_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0010_auto_20220122_1546", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0013_alter_factor_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0014_auto_20220123_1348", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0017_factoriteam_garantyesh", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0020_auto_20220126_1532", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0021_alter_article_type", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0022_article_typepy", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0023_alter_article_typepy", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0025_action_actiontype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0027_alter_action_nazar", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0028_action_grade", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0029_alter_article_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0030_auto_20220414_1047", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0032_article_paystatus", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0033_article_nahvepardakht", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0034_alter_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0035_alter_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0037_sarresid_sarresiddt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0040_customer_laghv_bazdid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0041_auto_20240216_1607", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0044_sarresid_desc", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0048_alter_productinstore_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0049_alter_productinstore_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0055_action_nextnazardt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_models_actions", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/actions.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_actions", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/actions.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/customers.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/factors.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/factors.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/finance.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/finance.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "django_core_validators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/finance.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_users", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_customers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_products", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_store", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_factors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_finance", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_actions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init", + "target": "admin_panel_models_system", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/__init__.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/products.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/products.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/store.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/store.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/store.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_models_system", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/system.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_users", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/users.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_users", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models/users.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "typing", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_utils_translation", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "django", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p", + "target": "django", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_tests", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/tests.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_conf_urls_static", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "admin_panel_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/actions.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_auth", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/auth.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_auth", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/auth.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "asgiref_sync", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "playwright_async_api", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_core_paginator", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_views_decorators_csrf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/customers.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "persiantools", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_views_decorators_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/factors.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_core_paginator", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_views_decorators_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/finance.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "persiantools", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_customers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_factors", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_store", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_finance", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_actions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init", + "target": "admin_panel_views_cheque_inquiry", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/__init__.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_services", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_helpers", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_core_paginator", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_views_decorators_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views/store.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_tests", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/tests.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "admin_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/views.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/views.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "khatibi_asgi", + "target": "django_core_asgi", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/asgi.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "khatibi_production_settings", + "target": "khatibi_settings", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/production_settings.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_production_settings", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/production_settings.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "khatibi_settings", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/settings.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_conf_urls_static", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi", + "target": "django_core_wsgi", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/wsgi.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "dataclasses", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "datetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "typing", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "project_tree.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/factories.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/factories.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_factories", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_customers.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_factories", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_factors.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_factories", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "admin_panel_services", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_inventory.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models_contract.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_models_contract.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_urls_contract.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_urls_contract.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "admin_panel_models_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_factories", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "tests/test_view_smoke.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_source_store_permission", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_source_store_permission", + "target": "storeroom", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_target_store_permission", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_target_store_permission", + "target": "storeroom", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "product", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "storeroom", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_get_product_current_stock", + "target": "product", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_panel_services_get_product_current_stock", + "target": "storeroom", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "project_tree_format_header", + "target": "datetime", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "project_tree_format_header", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "project_tree_format_header", + "target": "project_tree_counts", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "project_tree_generate_snapshot", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L191", + "weight": 1.0 + }, + { + "source": "project_tree_normalized_path", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "project_tree_sorted_entries", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "path", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "project_tree_counts", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "project_tree_write_tree", + "target": "textio", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "project_tree.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_models_store_storetransferrequest", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "admin_panel_models_store_storetransferrequest", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_models_store_storetransferrequest", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "admin_panel_models_store_storetransferrequest", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "project_tree_parse_args", + "target": "namespace", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "return_type", + "source_file": "project_tree.py", + "source_location": "L224", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "admin_panel_views_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "admin_panel/urls.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "admin_views", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "admin/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract", + "target": "admin_panel_views_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "tests/test_urls_contract.py", + "source_location": "L147", + "weight": 1.0 + }, + { + "source": "admin_apps", + "target": "admin_apps_adminconfig", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_phonenumber", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_storeroom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_productcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_productinstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_factor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_factoriteam", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_visitqueue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storetransferrequestadmin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storeroomownerinline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storeroomadmin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "admin_panel_apps", + "target": "admin_panel_apps_adminpanelconfig", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "admin_panel_context_processor_dashboxdata", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/context_processor.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "admin_panel_management_commands_gt_esh_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_management_commands_send_daily_report_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "admin_panel_management_commands_sqlite_db_backup_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "admin_panel_migrations_0001_initial_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "admin_panel_migrations_0002_auto_20220114_1616_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "admin_panel_migrations_0003_auto_20220115_1401_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0004_factor_paytype", + "target": "admin_panel_migrations_0004_factor_paytype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0005_auto_20220121_2054", + "target": "admin_panel_migrations_0005_auto_20220121_2054_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0006_auto_20220121_2100", + "target": "admin_panel_migrations_0006_auto_20220121_2100_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "admin_panel_migrations_0007_productinstore_factor_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "admin_panel_migrations_0008_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0009_remove_storeroom_user", + "target": "admin_panel_migrations_0009_remove_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0010_auto_20220122_1546", + "target": "admin_panel_migrations_0010_auto_20220122_1546_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "admin_panel_migrations_0011_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "admin_panel_migrations_0012_visitqueue_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0013_alter_factor_options", + "target": "admin_panel_migrations_0013_alter_factor_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0014_auto_20220123_1348", + "target": "admin_panel_migrations_0014_auto_20220123_1348_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "admin_panel_migrations_0015_auto_20220124_0858_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "admin_panel_migrations_0016_factor_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0017_factoriteam_garantyesh", + "target": "admin_panel_migrations_0017_factoriteam_garantyesh_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "admin_panel_migrations_0018_alter_factoriteam_product_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "admin_panel_migrations_0019_article_articletype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0020_auto_20220126_1532", + "target": "admin_panel_migrations_0020_auto_20220126_1532_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0021_alter_article_type", + "target": "admin_panel_migrations_0021_alter_article_type_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0022_article_typepy", + "target": "admin_panel_migrations_0022_article_typepy_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0023_alter_article_typepy", + "target": "admin_panel_migrations_0023_alter_article_typepy_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "admin_panel_migrations_0024_action_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0025_action_actiontype", + "target": "admin_panel_migrations_0025_action_actiontype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "admin_panel_migrations_0026_auto_20220209_1924_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0027_alter_action_nazar", + "target": "admin_panel_migrations_0027_alter_action_nazar_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0028_action_grade", + "target": "admin_panel_migrations_0028_action_grade_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0029_alter_article_options", + "target": "admin_panel_migrations_0029_alter_article_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0030_auto_20220414_1047", + "target": "admin_panel_migrations_0030_auto_20220414_1047_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "admin_panel_migrations_0031_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0032_article_paystatus", + "target": "admin_panel_migrations_0032_article_paystatus_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0033_article_nahvepardakht", + "target": "admin_panel_migrations_0033_article_nahvepardakht_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0034_alter_article_sarresid", + "target": "admin_panel_migrations_0034_alter_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0035_alter_article_sarresid", + "target": "admin_panel_migrations_0035_alter_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "admin_panel_migrations_0036_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0037_sarresid_sarresiddt", + "target": "admin_panel_migrations_0037_sarresid_sarresiddt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "admin_panel_migrations_0038_auto_20240213_1735_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "target": "admin_panel_migrations_0039_customer_last_bazdid_dt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0040_customer_laghv_bazdid", + "target": "admin_panel_migrations_0040_customer_laghv_bazdid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0041_auto_20240216_1607", + "target": "admin_panel_migrations_0041_auto_20240216_1607_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "admin_panel_migrations_0042_article_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "admin_panel_migrations_0043_sarresid_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0044_sarresid_desc", + "target": "admin_panel_migrations_0044_sarresid_desc_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "admin_panel_migrations_0045_auto_20260610_1421_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "admin_panel_migrations_0046_auto_20260624_1818_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "target": "admin_panel_migrations_0047_alter_productinstore_movement_type_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0048_alter_productinstore_options", + "target": "admin_panel_migrations_0048_alter_productinstore_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0049_alter_productinstore_options", + "target": "admin_panel_migrations_0049_alter_productinstore_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "admin_panel_migrations_0050_storetransferrequest_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "admin_panel_migrations_0051_auto_20260705_1356_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "admin_panel_migrations_0052_storeroomowner_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "admin_panel_migrations_0053_storeroom_owners_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "admin_panel_migrations_0054_auto_20260715_2250_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0055_action_nextnazardt", + "target": "admin_panel_migrations_0055_action_nextnazardt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "admin_panel_migrations_0056_auto_20260731_1824_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_models_actions", + "target": "admin_panel_models_actions_action", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/actions.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_models_actions", + "target": "admin_panel_models_actions_visitqueue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/actions.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers", + "target": "admin_panel_models_customers_phonenumber", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers", + "target": "admin_panel_models_customers_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers_customer", + "target": "admin_panel_models_customers_customer_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors", + "target": "admin_panel_models_factors_factor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/factors.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors", + "target": "admin_panel_models_factors_factoriteam", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/factors.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors_factor", + "target": "admin_panel_models_factors_factor_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/factors.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "admin_panel_models_finance_article", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/finance.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "admin_panel_models_finance_sarresid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/finance.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance", + "target": "admin_panel_models_finance_articletype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/finance.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_models_finance_article", + "target": "admin_panel_models_finance_article_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/finance.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "admin_panel_models_products_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "admin_panel_models_products_productinstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products", + "target": "admin_panel_models_products_productcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_product", + "target": "admin_panel_models_products_product_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_movementtype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L35", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "admin_panel_models_store_storeroomowner", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "admin_panel_models_store_productstockhistory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "admin_panel_models_store_storeroom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store", + "target": "admin_panel_models_store_storetransferrequest", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_productstockhistory", + "target": "admin_panel_models_store_productstockhistory_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L58", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storeroom", + "target": "admin_panel_models_store_storeroom_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_panel_models_store_storetransferrequest_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L137", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_panel_models_store_storetransferrequest_status", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "admin_panel_models_system", + "target": "admin_panel_models_system_cachetable", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/system.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_models_users", + "target": "admin_panel_models_users_userprofile", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/users.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_reject_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_check_target_store_permission", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_check_source_store_permission", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_get_product_current_stock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_create_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_approve_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "admin_panel_templatetags_custom_tags_has_group", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "admin_panel_templatetags_custom_tags_tojalali", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p", + "target": "admin_panel_templatetags_remove_q_p_remove_query_param", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlistuser", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L105", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_customereditaction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_customeraction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlistall", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlisttoday", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L162", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlistusertoday", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L174", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_rezayat", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_rezayatedit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L233", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_customernazar", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_customernewaction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions", + "target": "admin_panel_views_actions_actionlist", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/actions.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_views_auth", + "target": "admin_panel_views_auth_p_logout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/auth.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "admin_panel_views_auth", + "target": "admin_panel_views_auth_p_login", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/auth.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_run_bpi_cheque_inquiry_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_solve_base64_captcha", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L228", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L251", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_parse_cheque_result_html", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry", + "target": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L87", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerfactors", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerfactor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_productsjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L197", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_actionjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L204", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L211", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customersadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L220", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customeredit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_entezar", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L305", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerdel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L367", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerhesabdari", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L415", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_sarresidh", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L431", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerhesabdariadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L442", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customerssearch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L50", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customernew", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "admin_panel_views_customers_customernew2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/customers.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_factors_newfactor2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/factors.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_factors_newfactor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/factors.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors", + "target": "admin_panel_views_factors_factordel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/factors.py", + "source_location": "L368", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_report_debtors_no_vosol", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_inventory_movements_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L235", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_financial_dashboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L318", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_bedehi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L518", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_hesabdari", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L538", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_hesabdari_checkpass", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L594", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_hesabdari_checkpassfail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L614", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_hesabdari_residnashone", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L638", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_bedehikhadamat", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L659", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_bedehinasb", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L676", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_passcheck", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L692", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_update_check_info", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L723", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_addsarresid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L772", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_pardakhtnesiye", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L864", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance", + "target": "admin_panel_views_finance_rezayat_dashboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L927", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "admin_panel_views_helpers_safe_int", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_operations", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L104", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_operationproduct", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L133", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_newoperation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L153", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_store_transfers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L164", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_stores", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_process_transfer_action", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L203", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_newstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L251", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_productadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L262", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_productedit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L289", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_store", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_productdel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L308", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L315", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_views_store_productmojodi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L435", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "admin_views_index", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/views.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "agents", + "target": "agents_project_operating_agent_guidelines", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "agents_1_codebase_navigation_analysis_ripwire_vs_graphify", + "target": "agents_routing_gate_pipeline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_1_codebase_navigation_analysis_ripwire_vs_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_2_dynamic_help_self_correction_staleness", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_3_git_operations_safety", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L48", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_4_development_server_lifecycle", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_5_environment_frontend_pwa_safety", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "agents_project_operating_agent_guidelines", + "target": "agents_6_end_to_end_browser_tests_playwright", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "AGENTS.md", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "check_finance_check_financial_discrepancy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "check_finance.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "entrypoint", + "target": "entrypoint_sh__entry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "entrypoint.sh", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "gemini", + "target": "gemini_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "GEMINI.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "ghost_hunter_run_360_audit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ghost_hunter.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "github_copilot_instructions", + "target": "github_copilot_instructions_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "manage", + "target": "manage_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_is_excluded_file", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_sorted_entries", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_write_tree", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L138", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_format_header", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_generate_snapshot", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L191", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_non_negative_integer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L214", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_parse_args", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L224", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L241", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_counts", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_warn", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L90", + "weight": 1.0 + }, + { + "source": "project_tree", + "target": "project_tree_normalized_path", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "reconciliation_tool_run_audit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "reconciliation_tool.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "ripwire_readme", + "target": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "ripwire_readme_3_installation", + "target": "ripwire_readme_3_1_install_a_prebuilt_binary", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2460", + "weight": 1.0 + }, + { + "source": "ripwire_readme_3_installation", + "target": "ripwire_readme_3_2_build_from_source", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2488", + "weight": 1.0 + }, + { + "source": "ripwire_readme_3_installation", + "target": "ripwire_readme_3_3_install_the_agent_skills", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2546", + "weight": 1.0 + }, + { + "source": "ripwire_readme_3_installation", + "target": "ripwire_readme_3_4_register_the_mcp_server_optional", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2566", + "weight": 1.0 + }, + { + "source": "ripwire_readme_4_first_use", + "target": "ripwire_readme_4_1_make_the_first_map", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2604", + "weight": 1.0 + }, + { + "source": "ripwire_readme_4_first_use", + "target": "ripwire_readme_4_2_use_the_common_commands", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2621", + "weight": 1.0 + }, + { + "source": "ripwire_readme_6_output_format", + "target": "ripwire_readme_6_1_output_example", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2684", + "weight": 1.0 + }, + { + "source": "ripwire_readme_6_output_format", + "target": "ripwire_readme_6_2_exit_codes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2707", + "weight": 1.0 + }, + { + "source": "ripwire_readme_6_output_format", + "target": "ripwire_readme_6_3_json_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2720", + "weight": 1.0 + }, + { + "source": "ripwire_readme_improve_it_with_your_agent", + "target": "ripwire_readme_if_it_works_on_your_codebase_tell_us_what_it_got_wrong", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2254", + "weight": 1.0 + }, + { + "source": "ripwire_readme_measured", + "target": "ripwire_readme_against_other_tools", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1617", + "weight": 1.0 + }, + { + "source": "ripwire_readme_measured", + "target": "ripwire_readme_what_it_saves_you_in_tokens", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1767", + "weight": 1.0 + }, + { + "source": "ripwire_readme_measured", + "target": "ripwire_readme_where_its_own_cycles_go_hardware_counters_per_scope", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1813", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_1_purpose_and_function", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2347", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_2_system_requirements", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2433", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_3_installation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2458", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_4_first_use", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2598", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_5_command_families", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2645", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_6_output_format", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2672", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_7_accuracy_and_disclosure_rules", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2728", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_8_determinism", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2778", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_9_verification_and_quality_control", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2811", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_10_quality_evaluation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2846", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_11_agent_integration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2873", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_12_supported_languages_and_formats", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2922", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_13_performance", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2958", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_14_known_limits", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2977", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_15_documentation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3015", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_16_improvement", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3026", + "weight": 1.0 + }, + { + "source": "ripwire_readme_reference_guide", + "target": "ripwire_readme_17_license", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3041", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_the_quality_panel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1147", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_real_runs", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1377", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_measured", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1606", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_the_goal_one_question_one_complete_answer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_standing_on_the_whole_field", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1925", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_the_honesty_contract", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1948", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_set_it_up_in_your_coding_agent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2101", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_improve_it_with_your_agent", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2213", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_same_answer_a_fraction_of_the_tokens_read_this_table_first_if_your_agent_is_on_a_budget", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L227", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_languages", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2275", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_reference_guide", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2318", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_release_notes", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3052", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_see_the_map_not_just_the_numbers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L310", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_documentation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3107", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_licence", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3135", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_against_the_leading_graph_database_code_context_mcp_server", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L427", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_graph_ranked_retrieval_it_finds_the_right_files_more_often_than_the_alternatives", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L471", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_saves_tokens_it_answers_for_a_fraction_of_the_context", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L724", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_where_it_pays_most_and_where_it_does_not", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L751", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_better_code_it_automates_the_review_judgments_nobody_has_time_to_make_every_lens_from_published_research", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L825", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_what_it_answers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L945", + "weight": 1.0 + }, + { + "source": "ripwire_readme_rip_n_fast_fewer_tokens_better_code", + "target": "ripwire_readme_quickstart", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L987", + "weight": 1.0 + }, + { + "source": "ripwire_readme_set_it_up_in_your_coding_agent", + "target": "ripwire_readme_1_optional_register_the_mcp_server", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2127", + "weight": 1.0 + }, + { + "source": "ripwire_readme_set_it_up_in_your_coding_agent", + "target": "ripwire_readme_2_install_the_skills", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2183", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_honesty_contract", + "target": "ripwire_readme_what_it_misses_and_what_to_run_next", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1953", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_honesty_contract", + "target": "ripwire_readme_in_the_output", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2033", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_honesty_contract", + "target": "ripwire_readme_in_the_numbers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2057", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_honesty_contract", + "target": "ripwire_readme_in_the_tests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L2082", + "weight": 1.0 + }, + { + "source": "ripwire_readme_the_quality_panel", + "target": "ripwire_readme_nest_is_a_max_so_it_cannot_tell_a_long_function_from_a_tangled_one", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L1181", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_next", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_store", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_category", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_stock_in", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_current_stock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "tests_factories", + "target": "tests_factories_make_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_test_customers_customercrudtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_customers", + "target": "tests_test_customers_customerdeleteguardtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_test_factors_factorsoftdeletetests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_factors", + "target": "tests_test_factors_newfactor2viewtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_test_inventory_productinstoremathtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "tests_test_inventory", + "target": "tests_test_inventory_transferworkflowtests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract", + "target": "tests_test_models_contract_modelspackagecontracttests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract", + "target": "tests_test_urls_contract_urlcontracttests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke", + "target": "tests_test_view_smoke_viewsmoketests", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_apps_adminconfig", + "target": "admin_apps_py_appconfig", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_apps_adminpanelconfig", + "target": "admin_panel_apps_py_appconfig", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_management_commands_send_daily_report_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_inventoryexception", + "target": "exception", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "tests_test_customers_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "tests_test_customers_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "tests_test_factors_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L46", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_py_simpletestcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_py_simpletestcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L117", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_py_testcase", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storeroomadmin", + "target": "admin_panel_admin_storeroomadmin_get_owners_count", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_add_arguments", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_management_commands_send_daily_report_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers_customer", + "target": "admin_panel_models_customers_customer_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers_customer", + "target": "admin_panel_models_customers_customer_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customers_phonenumber", + "target": "admin_panel_models_customers_phonenumber_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/customers.py", + "source_location": "L41", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factors_factor", + "target": "admin_panel_models_factors_factor_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/factors.py", + "source_location": "L45", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_product", + "target": "admin_panel_models_products_product_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productcategory", + "target": "admin_panel_models_products_productcategory_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L68", + "weight": 1.0 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_products_productinstore_save", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/products.py", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_productstockhistory", + "target": "admin_panel_models_store_productstockhistory_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storeroom", + "target": "admin_panel_models_store_storeroom_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_panel_models_store_storetransferrequest_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L140", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_panel_models_store_storetransferrequest_clean", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L143", + "weight": 1.0 + }, + { + "source": "admin_panel_models_system_cachetable", + "target": "admin_panel_models_system_cachetable_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/system.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_models_users_userprofile", + "target": "admin_panel_models_users_userprofile_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/users.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "project_tree_counts", + "target": "project_tree_counts_add_file", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "tests_test_customers_customercrudtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "tests_test_customers_customercrudtests_test_add_customer_creates_phones", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "tests_test_customers_customercrudtests_test_edit_customer_replaces_phones", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L36", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "tests_test_customers_customerdeleteguardtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "tests_test_customers_customerdeleteguardtests_test_customer_without_history_is_deactivated", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "tests_test_customers_customerdeleteguardtests_test_customer_with_financial_history_is_never_deleted", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "tests_test_factors_factorsoftdeletetests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "tests_test_factors_factorsoftdeletetests_test_delete_is_soft", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "tests_test_factors_factorsoftdeletetests_test_instore_transaction_protects_its_factor", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_get", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L109", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_newfactor2viewtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_newfactor2viewtests_test_new_factor2_creates_factor_article_and_stock_out", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L59", + "weight": 1.0 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "tests_test_factors_newfactor2viewtests_test_new_factor2_rejects_oversell_without_creating_factor", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_initial_in_records_history_and_stock", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L25", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_multiple_movements_accumulate_correctly", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_editing_a_row_updates_stock_and_history", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_deleting_a_row_creates_history_and_reduces_stock", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L72", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "tests_test_inventory_productinstoremathtests_test_garbage_numeric_values_are_coerced_to_zero", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_create_transfer_request_pending", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L108", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_create_rejects_insufficient_stock", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_create_rejects_same_store", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L128", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_create_rejects_non_positive_quantity", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L135", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_approve_moves_stock_and_links_transactions", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L142", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_double_approval_is_rejected", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L156", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_reject_keeps_stock_untouched", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L166", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_cancel_by_requester", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L178", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_permission_denied_for_outsider", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_transferworkflowtests", + "target": "tests_test_inventory_transferworkflowtests_test_approval_permission_denied_for_non_target_member", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L194", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_all_models_importable_from_package", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_models_are_registered_under_admin_panel_app", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L49", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_db_table_names_are_unchanged_defaults", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_star_import_leak_names_still_present", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_modelspackagecontracttests", + "target": "tests_test_models_contract_modelspackagecontracttests_test_models_package_has_no_duplicate_registration", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L78", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_urlcontracttests_all_names", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_urlcontracttests_test_url_name_snapshot_unchanged", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_urlcontracttests_test_every_url_reverses", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_urlcontracttests", + "target": "tests_test_urls_contract_urlcontracttests_test_all_view_callables_are_importable", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L145", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_test_every_endpoint_responds_without_server_error", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L207", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_setuptestdata", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_setup", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_now_ms", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_url", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L80", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "tests_test_view_smoke_viewsmoketests_endpoints", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_rationale_54", + "target": "admin_panel_admin_storeroomownerinline", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_rationale_75", + "target": "admin_panel_admin_storeroomadmin_get_owners_count", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_115", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_123", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_89", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_rationale_158", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_rationale_30", + "target": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_models_init_rationale_1", + "target": "admin_panel_models_init", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models_store_rationale_34", + "target": "admin_panel_models_store_storeroomowner", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models/store.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_160", + "target": "admin_panel_services_reject_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_187", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_20", + "target": "admin_panel_services_check_target_store_permission", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_30", + "target": "admin_panel_services_check_source_store_permission", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_40", + "target": "admin_panel_services_get_product_current_stock", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_64", + "target": "admin_panel_services_create_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_99", + "target": "admin_panel_services_approve_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p_rationale_7", + "target": "admin_panel_templatetags_remove_q_p_remove_query_param", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_rationale_229", + "target": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L229", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_rationale_252", + "target": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L252", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rationale_236", + "target": "admin_panel_views_finance_inventory_movements_report", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L236", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_rationale_319", + "target": "admin_panel_views_finance_financial_dashboard", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/finance.py", + "source_location": "L319", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_1", + "target": "admin_panel_views_helpers", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_13", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_18", + "target": "admin_panel_views_helpers_safe_int", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_29", + "target": "admin_panel_views_helpers_parse_jalali_date", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_views_helpers_rationale_42", + "target": "admin_panel_views_helpers_parse_timestamp", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/_helpers.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "admin_panel_views_init_rationale_1", + "target": "admin_panel_views_init", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/__init__.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_rationale_165", + "target": "admin_panel_views_store_store_transfers", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L165", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_rationale_204", + "target": "admin_panel_views_store_process_transfer_action", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views/store.py", + "source_location": "L204", + "weight": 1.0 + }, + { + "source": "khatibi_asgi_rationale_1", + "target": "khatibi_asgi", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/asgi.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_settings_rationale_1", + "target": "khatibi_settings", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/settings.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_urls_rationale_1", + "target": "khatibi_urls", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi_rationale_1", + "target": "khatibi_wsgi", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/wsgi.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "manage_rationale_2", + "target": "manage", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "manage_rationale_8", + "target": "manage_main", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_1", + "target": "project_tree", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_110", + "target": "project_tree_sorted_entries", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L110", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_145", + "target": "project_tree_write_tree", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L145", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_176", + "target": "project_tree_format_header", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L176", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_192", + "target": "project_tree_generate_snapshot", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L192", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_67", + "target": "project_tree_counts", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_91", + "target": "project_tree_warn", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L91", + "weight": 1.0 + }, + { + "source": "project_tree_rationale_97", + "target": "project_tree_normalized_path", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "project_tree.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_1", + "target": "tests_factories", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_23", + "target": "tests_factories_make_user", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_47", + "target": "tests_factories_make_store", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_79", + "target": "tests_factories_stock_in", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L79", + "weight": 1.0 + }, + { + "source": "tests_factories_rationale_92", + "target": "tests_factories_current_stock", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/factories.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "tests_test_customers_rationale_1", + "target": "tests_test_customers", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_customers.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_factors_rationale_1", + "target": "tests_test_factors", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_factors_rationale_47", + "target": "tests_test_factors_newfactor2viewtests", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_factors.py", + "source_location": "L47", + "weight": 1.0 + }, + { + "source": "tests_test_inventory_rationale_1", + "target": "tests_test_inventory", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_inventory.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_rationale_1", + "target": "tests_test_models_contract", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_models_contract_rationale_67", + "target": "tests_test_models_contract_modelspackagecontracttests_test_star_import_leak_names_still_present", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_models_contract.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_rationale_1", + "target": "tests_test_urls_contract", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_urls_contract_rationale_146", + "target": "tests_test_urls_contract_urlcontracttests_test_all_view_callables_are_importable", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_urls_contract.py", + "source_location": "L146", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_rationale_1", + "target": "tests_test_view_smoke", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "tests_test_view_smoke_rationale_84", + "target": "tests_test_view_smoke_viewsmoketests_endpoints", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "tests/test_view_smoke.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "ripwire_readme", + "target": "agents", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ripwire - README.md", + "source_location": "L3119", + "weight": 1.0 + }, + { + "source": "entrypoint_sh__entry", + "target": "manage", + "relation": "invokes", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.55, + "context": "script_invocation", + "source_file": "entrypoint.sh", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_progress_callback", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_sabt_inquiry", + "target": "admin_panel_views_cheque_inquiry_run_bpi_cheque_inquiry_logic", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L269", + "weight": 1.0 + }, + { + "source": "admin_panel_views_cheque_inquiry_api_check_status_inquiry", + "target": "admin_panel_views_cheque_inquiry_run_cbi_sayad_inquiry_logic", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/views/cheque_inquiry.py", + "source_location": "L240", + "weight": 1.0 + }, + { + "source": "project_tree_parse_args", + "target": "project_tree_non_negative_integer", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "project_tree.py", + "source_location": "L234", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actions_customernewaction", + "target": "admin_panel_models_actions_action", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/actions.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customerhesabdariadd", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/customers.py", + "source_location": "L450", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers_customersadd", + "target": "admin_panel_models_customers_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/customers.py", + "source_location": "L242", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_factordel", + "target": "admin_panel_models_products_productinstore", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L441", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_models_factors_factoriteam", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_models_products_productinstore", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L142", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_models_factors_factor", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L60", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_models_factors_factoriteam", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/factors.py", + "source_location": "L272", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_addsarresid", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L822", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_addsarresid", + "target": "admin_panel_models_finance_sarresid", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L836", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_pardakhtnesiye", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L905", + "weight": 1.0 + }, + { + "source": "admin_panel_views_finance_passcheck", + "target": "admin_panel_models_finance_article", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/finance.py", + "source_location": "L699", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_newstore", + "target": "admin_panel_models_store_storeroom", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L253", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productadd", + "target": "admin_panel_models_products_product", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L269", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_productadd", + "target": "admin_panel_models_products_productinstore", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views/store.py", + "source_location": "L275", + "weight": 1.0 + }, + { + "source": "ripwire_readme_nest_is_a_max_so_it_cannot_tell_a_long_function_from_a_tangled_one", + "target": "admin_views_index", + "relation": "references", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "index", + "source_file": "ripwire - README.md", + "source_location": "L1257", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L52", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L32", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "admin_panel_models_actions_action", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/actions.py", + "source_location": "L26", + "weight": 0.8 + }, + { + "source": "admin_panel_models_actions_visitqueue", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/actions.py", + "source_location": "L14", + "weight": 0.8 + }, + { + "source": "admin_panel_models_factors_factor", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/factors.py", + "source_location": "L19", + "weight": 0.8 + }, + { + "source": "admin_panel_models_products_productinstore", + "target": "admin_panel_models_store_productstockhistory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/products.py", + "source_location": "L112", + "weight": 0.8 + }, + { + "source": "admin_panel_models_store_storeroom", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/store.py", + "source_location": "L15", + "weight": 0.8 + }, + { + "source": "admin_panel_models_store_storeroomowner", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/store.py", + "source_location": "L42", + "weight": 0.8 + }, + { + "source": "admin_panel_models_store_storetransferrequest", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/store.py", + "source_location": "L102", + "weight": 0.8 + }, + { + "source": "admin_panel_models_users_userprofile", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models/users.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlist", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L100", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlistall", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L157", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlisttoday", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L169", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlistuser", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L107", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_actionlistusertoday", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L196", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_customeraction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_customereditaction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L137", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_customernazar", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L52", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actions_customernewaction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/actions.py", + "source_location": "L80", + "weight": 0.8 + }, + { + "source": "admin_panel_views_factors_newfactor", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/factors.py", + "source_location": "L72", + "weight": 0.8 + }, + { + "source": "admin_panel_views_factors_newfactor2", + "target": "admin_panel_views_helpers_inventoryexception", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/factors.py", + "source_location": "L284", + "weight": 0.8 + }, + { + "source": "admin_panel_views_finance_inventory_movements_report", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/finance.py", + "source_location": "L240", + "weight": 0.8 + }, + { + "source": "admin_panel_views_finance_report", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/finance.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "admin_panel_views_finance_rezayat_dashboard", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views/finance.py", + "source_location": "L960", + "weight": 0.8 + }, + { + "source": "check_finance_check_financial_discrepancy", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "check_finance.py", + "source_location": "L42", + "weight": 0.8 + }, + { + "source": "ghost_hunter_run_360_audit", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "ghost_hunter.py", + "source_location": "L37", + "weight": 0.8 + }, + { + "source": "reconciliation_tool_run_audit", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "reconciliation_tool.py", + "source_location": "L42", + "weight": 0.8 + }, + { + "source": "tests_factories_current_stock", + "target": "admin_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L94", + "weight": 0.8 + }, + { + "source": "tests_factories_current_stock", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L94", + "weight": 0.8 + }, + { + "source": "tests_factories_current_stock", + "target": "admin_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L94", + "weight": 0.8 + }, + { + "source": "tests_factories_make_category", + "target": "admin_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L66", + "weight": 0.8 + }, + { + "source": "tests_factories_make_customer", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L100", + "weight": 0.8 + }, + { + "source": "tests_factories_make_customer", + "target": "admin_models_phonenumber", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L106", + "weight": 0.8 + }, + { + "source": "tests_factories_make_product", + "target": "admin_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L70", + "weight": 0.8 + }, + { + "source": "tests_factories_make_product", + "target": "admin_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L73", + "weight": 0.8 + }, + { + "source": "tests_factories_make_store", + "target": "admin_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L53", + "weight": 0.8 + }, + { + "source": "tests_factories_make_user", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L29", + "weight": 0.8 + }, + { + "source": "tests_factories_stock_in", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L80", + "weight": 0.8 + }, + { + "source": "tests_factories_stock_in", + "target": "admin_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L81", + "weight": 0.8 + }, + { + "source": "tests_factories_stock_in", + "target": "admin_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/factories.py", + "source_location": "L82", + "weight": 0.8 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_customers.py", + "source_location": "L30", + "weight": 0.8 + }, + { + "source": "tests_test_customers_customercrudtests", + "target": "admin_models_phonenumber", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_customers.py", + "source_location": "L34", + "weight": 0.8 + }, + { + "source": "tests_test_customers_customerdeleteguardtests", + "target": "admin_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_customers.py", + "source_location": "L84", + "weight": 0.8 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "admin_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_factors.py", + "source_location": "L19", + "weight": 0.8 + }, + { + "source": "tests_test_factors_factorsoftdeletetests", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_factors.py", + "source_location": "L36", + "weight": 0.8 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "admin_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_factors.py", + "source_location": "L77", + "weight": 0.8 + }, + { + "source": "tests_test_factors_newfactor2viewtests", + "target": "admin_models_factoriteam", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_factors.py", + "source_location": "L80", + "weight": 0.8 + }, + { + "source": "tests_test_inventory_productinstoremathtests", + "target": "admin_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_inventory.py", + "source_location": "L39", + "weight": 0.8 + }, + { + "source": "tests_test_view_smoke_viewsmoketests", + "target": "admin_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "tests/test_view_smoke.py", + "source_location": "L54", + "weight": 0.8 + }, + { + "source": "admin_panel_templates_admin_panel_base", + "target": "admin_panel_templates_admin_panel_basehesabdari", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "AMBIGUOUS", + "confidence_score": 0.2, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_templatetags_tojalali", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 60 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "javascript_jquery", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 105 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_customer_delete", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 220 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "javascript_pdatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 246 + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "api_endpoint_panel_customer_del", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "api_endpoint_panel_productmojodi", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_productsjson", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "js_library_pdatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "panel_urls_productmojodi", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html", + "target": "concept_datatables", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 322, + 322 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_kamadatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 203, + 203 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "django_templatetags_custom_tags_tojalali", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 35, + 35 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "javascript_library_pdatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 180, + 180 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags_tocurrency", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 14 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "lib_pdatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 192 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags_tojalali", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 60 + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "javascript_kamadatepicker", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "copilot_chat", + "target": "github_copilot_instructions_graphify", + "relation": "calls", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "admin_panel_templates_admin_panel_base", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "admin_panel_templates_admin_panel_base", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerid", + "target": "admin_panel_templates_admin_panel_customerbase", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_actionlistusertoday", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_bedehi", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_entezar", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_hesabdari", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_hesabdari_residnashone", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_index", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_p_logout", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_rezayat", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_stores", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_bulma_min_css", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_datatables_datatables_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_kamadatepicker_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_persian-datepicker_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_style_css", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_django_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_operations", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_productadd", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_store", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_store_transfers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "admin_panel_url_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "concept_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "django_template_tag_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "django_template_tag_url", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "library_bulma", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "library_datatables", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehi", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 10 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehikhadamat", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 11 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehinasb", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 12 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_context_variable_mandehesabkp", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 18 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_templatetags_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 2 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 4 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_context_variable_articls", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "javascript_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 88 + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_templates_admin_panel_customeractioninc_html", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_urls_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_urls_customernewaction", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "django_template_tag_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "django_template_tag_url", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "library_pdatepicker", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "django_templatetags_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 3 + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "concept_url_panel_customer_factor_del", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerid", + "target": "concept_url_admin_panel_newfactor", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "admin_panel_url_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_category", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_permission", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_filter_tojalali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_tag_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_tag_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_customeredit", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_customerfactors", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_newfactor", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "admin_panel_urls_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "admin_panel_urls_customeredit", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "django_contrib_staticfiles_templatetags_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "admin_panel_urls_newfactor", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_category", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_concepts_csrf_token", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_template_tags_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_template_tags_static", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "django_templatetags_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 2, + 2 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 201, + 201 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 29, + 29 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_pardakhtnesiye", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_passcheck", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "concept_all_sarresid", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "django_context_variable_mandehesabkp", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "javascript_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "javascript_pdatepicker", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_pardakhtnesiye", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 111, + 111 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_passcheck", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 201, + 201 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "django_permission_viewreportmali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 4, + 4 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_urls_pardakhtnesiye", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 106 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "lib_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 182 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 2 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 4 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_urls_customernew", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 53 + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_csrf_token", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_static_files", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_url_admin_panel_p_login", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "form_field_password", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "form_field_username", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "static_admin_panel_bulma-rtl_min_css", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "template_variable_message", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_csrf_token", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_newstore", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_operations", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_store", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "form_field_storename", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "template_variable_productsum", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "django_url_admin_panel_operations", + "target": "template_variable_s_id", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "django_url_admin_panel_store", + "target": "template_variable_s_id", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "github_copilot_instructions", + "target": "graphify-out_graph_report_md", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions", + "target": "graphify-out_wiki_index_md", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "graphify_query", + "target": "graphify-out_graph_json", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "django_context_variable_articls", + "target": "concept_articl_model", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "source": "templatetags_custom_tags", + "target": "templatetags_custom_tags_tocurrency", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "source": "templatetags_custom_tags", + "target": "templatetags_custom_tags_tojalali", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "django_contrib_auth_models_permission", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 33 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_data_sarresid", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 49 + }, + { + "source": "concept_articl_model", + "target": "concept_customer_model", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_action_model", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_customer_model", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_user", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "target": "django_url_admin_panel_newfactor", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "django_url_admin_panel_productsjson", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_all_products", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "template_variable_productsum", + "target": "product_property_mojodi", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "template_variable_productsum", + "target": "product_property_product_name", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html_createcs", + "target": "concept_customer_modal_ui", + "relation": "calls", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 334, + 334 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html_openrow", + "target": "concept_customer_modal_ui", + "relation": "calls", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 382, + 382 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_data_sarresid", + "target": "admin_panel_data_customer", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_data_sarresid", + "target": "admin_panel_data_factor", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 72, + 72 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_data_sarresid", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 54, + 54 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_user", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_client_side_form_logic", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html", + "target": "concept_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 321, + 321 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_customer_data", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 25, + 25 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "javascript_library_jquery", + "relation": "references", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 172, + 172 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_customer", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_factor", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_productcategory", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "concept_product", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "concept_productcategory", + "relation": "shares_data_with", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_explain", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_path", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_query", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + } + ], + "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": "graphify_output_artifacts", + "label": "Graphify Output Artifacts", + "nodes": [ + "graphify-out_graph_json", + "graphify-out_wiki_index_md", + "graphify-out_graph_report_md" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "id": "graphify_subcommands", + "label": "Graphify Subcommands", + "nodes": [ + "graphify_query", + "graphify_path", + "graphify_explain" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "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": "bedehi_report_navigation", + "label": "Bedehi Report Navigation", + "nodes": [ + "django_urls_admin_panel_bedehi", + "django_urls_admin_panel_bedehikhadamat", + "django_urls_admin_panel_bedehinasb" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "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_list_page", + "label": "Customer List Page", + "nodes": [ + "admin_panel_templates_admin_panel_entezar_html", + "concept_customer_data", + "concept_url_admin_panel_customers" + ], + "relation": "form", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/entezar.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": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customernewbackup_html", + "admin_panel_urls_newfactor", + "concept_client_side_form_logic", + "concept_customer", + "concept_category" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html" + }, + { + "id": "customer_management_ui_flow", + "label": "Customer Management UI Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customersbk_html", + "admin_panel_templates_admin_panel_customersbk_html_createcs", + "admin_panel_templates_admin_panel_customersbk_html_openrow", + "concept_customer_modal_ui" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.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": "new_factor_item_creation_flow", + "label": "New Factor Item Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "panel_urls_productmojodi", + "concept_product", + "concept_productcategory" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.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", + "concept_url_admin_panel_hesabdari", + "concept_url_admin_panel_bedehi" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "bedehi_template_data_contract", + "label": "Bedehi Template Data Contract", + "nodes": [ + "admin_panel_templates_admin_panel_bedehi_html", + "django_context_variable_mandehesabkp", + "django_context_variable_articls" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "customer_action_creation_flow", + "label": "Customer Action Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeraction", + "admin_panel_urls_customernewaction", + "concept_action_model" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "customer_management_ui", + "label": "Customer Management UI", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "concept_customer", + "django_url_admin_panel_customeredit", + "api_endpoint_panel_customer_del", + "django_url_admin_panel_customerfactors" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "hesabdaricheckpass_payment_flow", + "label": "Client-side Payment Processing Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "admin_panel_urls_passcheck", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "nesiye_payment_flow", + "label": "Nesiye Payment Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdariresidnashode", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "django_url_admin_panel_productsjson", + "api_endpoint_panel_productmojodi", + "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "django_url_admin_panel_newfactor" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "store_management_flow", + "label": "Store and Inventory Management Flow", + "nodes": [ + "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" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + } + ], + "built_at_commit": "6f36db63a15699ff22b5804ed630c7c4564b50b9" +} \ No newline at end of file diff --git a/graphify-out/backup-graph-preupdate-20261009-191412.json b/graphify-out/backup-graph-preupdate-20261009-191412.json new file mode 100644 index 0000000..16f6146 --- /dev/null +++ b/graphify-out/backup-graph-preupdate-20261009-191412.json @@ -0,0 +1,18277 @@ +{ + "directed": false, + "multigraph": false, + "graph": { + "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": "graphify_output_artifacts", + "label": "Graphify Output Artifacts", + "nodes": [ + "graphify-out_graph_json", + "graphify-out_wiki_index_md", + "graphify-out_graph_report_md" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "id": "graphify_subcommands", + "label": "Graphify Subcommands", + "nodes": [ + "graphify_query", + "graphify_path", + "graphify_explain" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "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": "bedehi_report_navigation", + "label": "Bedehi Report Navigation", + "nodes": [ + "django_urls_admin_panel_bedehi", + "django_urls_admin_panel_bedehikhadamat", + "django_urls_admin_panel_bedehinasb" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "client_side_factor_creation_flow", + "label": "Client-side New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customerbase", + "admin_panel_views_productsjson", + "admin_panel_views_productmojodi" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/customerBase.html" + }, + { + "id": "customer_management_navigation", + "label": "Customer Management Navigation", + "nodes": [ + "admin_panel_views_customerhesabdari", + "admin_panel_views_customernew", + "admin_panel_views_customerfactors" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/customerBase.html" + }, + { + "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_list_page", + "label": "Customer List Page", + "nodes": [ + "admin_panel_templates_admin_panel_entezar_html", + "concept_customer_data", + "concept_url_admin_panel_customers" + ], + "relation": "form", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/entezar.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": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customernewbackup_html", + "admin_panel_urls_newfactor", + "concept_client_side_form_logic", + "concept_customer", + "concept_category" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html" + }, + { + "id": "customer_management_ui_flow", + "label": "Customer Management UI Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customersbk_html", + "admin_panel_templates_admin_panel_customersbk_html_createcs", + "admin_panel_templates_admin_panel_customersbk_html_openrow", + "concept_customer_modal_ui" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.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": "new_factor_item_creation_flow", + "label": "New Factor Item Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "panel_urls_productmojodi", + "concept_product", + "concept_productcategory" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.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", + "concept_url_admin_panel_hesabdari", + "concept_url_admin_panel_bedehi" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "bedehi_template_data_contract", + "label": "Bedehi Template Data Contract", + "nodes": [ + "admin_panel_templates_admin_panel_bedehi_html", + "django_context_variable_mandehesabkp", + "django_context_variable_articls" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/bedehi.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_action_creation_flow", + "label": "Customer Action Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeraction", + "admin_panel_urls_customernewaction", + "concept_action_model" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "customer_management_ui", + "label": "Customer Management UI", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "concept_customer", + "django_url_admin_panel_customeredit", + "api_endpoint_panel_customer_del", + "django_url_admin_panel_customerfactors" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "hesabdaricheckpass_payment_flow", + "label": "Client-side Payment Processing Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "admin_panel_urls_passcheck", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "nesiye_payment_flow", + "label": "Nesiye Payment Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdariresidnashode", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "django_url_admin_panel_productsjson", + "api_endpoint_panel_productmojodi", + "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "django_url_admin_panel_newfactor" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "store_management_flow", + "label": "Store and Inventory Management Flow", + "nodes": [ + "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" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + } + ], + "_unverified_semantic_shrink": { + "admin_panel/templates/admin_panel/customerBase.html": [ + 6, + 1 + ] + }, + "schema_version": 1, + "graphify_version": "0.9.82" + }, + "nodes": [ + { + "id": "admin_panel_models_articletype", + "label": "ArticleType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "articletype", + "source_file": "admin_panel/models.py", + "source_location": "L428" + }, + { + "id": "admin_panel_models_cachetable", + "label": "CacheTable", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "cachetable", + "source_file": "admin_panel/models.py", + "source_location": "L510" + }, + { + "id": "admin_panel_models_phonenumber", + "label": "PhoneNumber", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "phonenumber", + "source_file": "admin_panel/models.py", + "source_location": "L61" + }, + { + "id": "admin_panel_models_product", + "label": "Product", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "product", + "source_file": "admin_panel/models.py", + "source_location": "L119" + }, + { + "id": "admin_panel_models_product_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models.py", + "source_location": "L120" + }, + { + "id": "admin_panel_models_productstockhistory", + "label": "ProductStockHistory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productstockhistory", + "source_file": "admin_panel/models.py", + "source_location": "L300" + }, + { + "id": "admin_panel_models_productstockhistory_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models.py", + "source_location": "L308" + }, + { + "id": "admin_panel_models_storeroomowner", + "label": "StoreRoomOwner", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomowner", + "source_file": "admin_panel/models.py", + "source_location": "L96" + }, + { + "id": "admin_panel_models_storetransferrequest", + "label": "StoreTransferRequest", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storetransferrequest", + "source_file": "admin_panel/models.py", + "source_location": "L315" + }, + { + "id": "admin_panel_models_storetransferrequest_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models.py", + "source_location": "L387" + }, + { + "id": "admin_panel_models_storetransferrequest_status", + "label": "Status", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "status", + "source_file": "admin_panel/models.py", + "source_location": "L316" + }, + { + "id": "admin_panel_models_userprofile", + "label": "UserProfile", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "userprofile", + "source_file": "admin_panel/models.py", + "source_location": "L15" + }, + { + "id": "admin_panel_models_visitqueue", + "label": "VisitQueue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "visitqueue", + "source_file": "admin_panel/models.py", + "source_location": "L409" + }, + { + "id": "admin_panel_management_commands_send_daily_report_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12" + }, + { + "id": "admin_panel_models_article", + "label": "Article", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "article", + "source_file": "admin_panel/models.py", + "source_location": "L432" + }, + { + "id": "admin_panel_models_article_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models.py", + "source_location": "L433" + }, + { + "id": "admin_panel_models_customer", + "label": "Customer", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "customer", + "source_file": "admin_panel/models.py", + "source_location": "L30" + }, + { + "id": "admin_panel_models_customer_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models.py", + "source_location": "L31" + }, + { + "id": "admin_panel_models_sarresid", + "label": "Sarresid", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "sarresid", + "source_file": "admin_panel/models.py", + "source_location": "L470" + }, + { + "id": "admin_panel_models_factor", + "label": "Factor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Invoice Management Logic", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factor", + "source_file": "admin_panel/models.py", + "source_location": "L135" + }, + { + "id": "admin_panel_models_factor_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Invoice Management Logic", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models.py", + "source_location": "L136" + }, + { + "id": "admin_panel_models_factoriteam", + "label": "FactorIteam", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 1, + "community_name": "Invoice Management Logic", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factoriteam", + "source_file": "admin_panel/models.py", + "source_location": "L400" + }, + { + "id": "admin_panel_models_productinstore", + "label": "ProductInStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productinstore", + "source_file": "admin_panel/models.py", + "source_location": "L181" + }, + { + "id": "admin_panel_models_productinstore_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models.py", + "source_location": "L182" + }, + { + "id": "admin_panel_models_productinstore_movementtype", + "label": "MovementType", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "movementtype", + "source_file": "admin_panel/models.py", + "source_location": "L188" + }, + { + "id": "admin_panel_models_productcategory", + "label": "ProductCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productcategory", + "source_file": "admin_panel/models.py", + "source_location": "L112" + }, + { + "id": "admin_models_user", + "label": "User", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "user", + "source_file": "admin/models.py", + "source_location": "L4" + }, + { + "id": "admin_panel_models_action", + "label": "Action", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "action", + "source_file": "admin_panel/models.py", + "source_location": "L453" + }, + { + "id": "admin_panel_admin_storeroomadmin", + "label": "StoreRoomAdmin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomadmin", + "source_file": "admin_panel/admin.py", + "source_location": "L64" + }, + { + "id": "admin_panel_admin_storeroomownerinline", + "label": "StoreRoomOwnerInline", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroomownerinline", + "source_file": "admin_panel/admin.py", + "source_location": "L53" + }, + { + "id": "admin_panel_admin_storetransferrequestadmin", + "label": "StoreTransferRequestAdmin", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storetransferrequestadmin", + "source_file": "admin_panel/admin.py", + "source_location": "L24" + }, + { + "id": "admin_models_customer", + "label": "Customer", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "customer", + "source_file": "admin/models.py", + "source_location": "L19" + }, + { + "id": "admin_models_factor", + "label": "Factor", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factor", + "source_file": "admin/models.py", + "source_location": "L44" + }, + { + "id": "admin_models_factoriteam", + "label": "FactorIteam", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "factoriteam", + "source_file": "admin/models.py", + "source_location": "L69" + }, + { + "id": "admin_models_phonenumber", + "label": "PhoneNumber", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "phonenumber", + "source_file": "admin/models.py", + "source_location": "L24" + }, + { + "id": "admin_models_product", + "label": "Product", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "product", + "source_file": "admin/models.py", + "source_location": "L34" + }, + { + "id": "admin_models_productcategory", + "label": "ProductCategory", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productcategory", + "source_file": "admin/models.py", + "source_location": "L31" + }, + { + "id": "admin_models_productinstore", + "label": "ProductInStore", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "productinstore", + "source_file": "admin/models.py", + "source_location": "L39" + }, + { + "id": "admin_models_storeroom", + "label": "StoreRoom", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroom", + "source_file": "admin/models.py", + "source_location": "L28" + }, + { + "id": "admin_models_visitqueue", + "label": "VisitQueue", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "visitqueue", + "source_file": "admin/models.py", + "source_location": "L76" + }, + { + "id": "admin_panel_models_storeroom", + "label": "StoreRoom", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 19, + "community_name": "Inventory and Product Models", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "storeroom", + "source_file": "admin_panel/models.py", + "source_location": "L69" + }, + { + "id": "admin_panel_models_storeroom_meta", + "label": "Meta", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 19, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "meta", + "source_file": "admin_panel/models.py", + "source_location": "L70" + }, + { + "id": "admin_panel_management_commands_gt_esh_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command", + "label": "Command", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "code", + "norm_label": "command", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17" + }, + { + "id": "admin_panel_views_inventoryexception", + "label": "InventoryException", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 20, + "community_name": "Invoice Management Logic", + "file_type": "code", + "norm_label": "inventoryexception", + "source_file": "admin_panel/views.py", + "source_location": "L38" + }, + { + "id": "admin_apps_adminconfig", + "label": "AdminConfig", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Django App Configurations", + "file_type": "code", + "norm_label": "adminconfig", + "source_file": "admin/apps.py", + "source_location": "L4" + }, + { + "id": "admin_panel_apps_adminpanelconfig", + "label": "AdminPanelConfig", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 24, + "community_name": "Django App Configurations", + "file_type": "code", + "norm_label": "adminpanelconfig", + "source_file": "admin_panel/apps.py", + "source_location": "L4" + }, + { + "id": "admin_panel_migrations_0002_auto_20220114_1616_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "Timezone-related Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0003_auto_20220115_1401_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "Timezone-related Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0031_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 25, + "community_name": "Timezone-related Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0004_factor_paytype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0013_alter_factor_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0014_auto_20220123_1348_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0017_factoriteam_garantyesh_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0020_auto_20220126_1532_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0021_alter_article_type_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0022_article_typepy_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0023_alter_article_typepy_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0027_alter_action_nazar_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0029_alter_article_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0034_alter_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0035_alter_article_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0037_sarresid_sarresiddt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0040_customer_laghv_bazdid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0047_alter_productinstore_movement_type_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0055_action_nextnazardt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0056_auto_20260731_1824_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 30, + "community_name": "Data Validation Migration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0005_auto_20220121_2054_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 34, + "community_name": "Database Schema Migration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0006_auto_20220121_2100_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 35, + "community_name": "Database Schema Migration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0009_remove_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 36, + "community_name": "Remove StoreRoom User Relation", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0010_auto_20220122_1546_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 37, + "community_name": "Database Schema Migration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0025_action_actiontype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 38, + "community_name": "Add Action Type Field", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0028_action_grade_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 39, + "community_name": "Add Action Grade Field", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0030_auto_20220414_1047_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 40, + "community_name": "Database Schema Migration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0032_article_paystatus_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 41, + "community_name": "Add Article Payment Status", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0033_article_nahvepardakht_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 42, + "community_name": "Add Article Payment Method", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0039_customer_last_bazdid_dt_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 43, + "community_name": "Add Customer Last Visit", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0041_auto_20240216_1607_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 44, + "community_name": "Database Schema Migration", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0044_sarresid_desc_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 45, + "community_name": "Add Sarresid Description", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0048_alter_productinstore_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 46, + "community_name": "Update ProductInStore Options", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0049_alter_productinstore_options_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 47, + "community_name": "Update ProductInStore Options", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L6" + }, + { + "id": "admin_panel_migrations_0001_initial_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0007_productinstore_factor_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0008_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0018_alter_factoriteam_product_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0019_article_articletype_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0024_action_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0036_sarresid_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0038_auto_20240213_1735_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0042_article_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0046_auto_20260624_1818_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0054_auto_20260715_2250_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0011_storeroom_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0012_visitqueue_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0015_auto_20220124_0858_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0016_factor_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0026_auto_20220209_1924_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0043_sarresid_user_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0045_auto_20260610_1421_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0050_storetransferrequest_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0051_auto_20260705_1356_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L7" + }, + { + "id": "admin_panel_migrations_0052_storeroomowner_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L8" + }, + { + "id": "admin_panel_migrations_0053_storeroom_owners_migration", + "label": "Migration", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "metadata": { + "python_opaque_bases": true + }, + "norm_label": "migration", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L7" + }, + { + "id": "admin_panel_models_cachetable_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L514" + }, + { + "id": "admin_panel_models_phonenumber_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L66" + }, + { + "id": "admin_panel_models_product_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L131" + }, + { + "id": "admin_panel_models_productstockhistory_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L311" + }, + { + "id": "admin_panel_models_storetransferrequest_clean", + "label": ".clean()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".clean()", + "source_file": "admin_panel/models.py", + "source_location": "L393" + }, + { + "id": "admin_panel_models_storetransferrequest_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L390" + }, + { + "id": "admin_panel_models_userprofile_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L26" + }, + { + "id": "admin_panel_services_approve_transfer_request", + "label": "approve_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "approve_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L98" + }, + { + "id": "admin_panel_services_cancel_transfer_request", + "label": "cancel_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "cancel_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L186" + }, + { + "id": "admin_panel_services_check_source_store_permission", + "label": "_check_source_store_permission()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "_check_source_store_permission()", + "source_file": "admin_panel/services.py", + "source_location": "L29" + }, + { + "id": "admin_panel_services_check_target_store_permission", + "label": "_check_target_store_permission()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "_check_target_store_permission()", + "source_file": "admin_panel/services.py", + "source_location": "L19" + }, + { + "id": "admin_panel_services_create_transfer_request", + "label": "create_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "create_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L55" + }, + { + "id": "admin_panel_services_get_product_current_stock", + "label": "get_product_current_stock()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "get_product_current_stock()", + "source_file": "admin_panel/services.py", + "source_location": "L39" + }, + { + "id": "admin_panel_services_reject_transfer_request", + "label": "reject_transfer_request()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "reject_transfer_request()", + "source_file": "admin_panel/services.py", + "source_location": "L159" + }, + { + "id": "admin_panel_views_process_transfer_action", + "label": "process_transfer_action()", + "_callable": true, + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "process_transfer_action()", + "source_file": "admin_panel/views.py", + "source_location": "L1319" + }, + { + "id": "admin_panel_context_processor_dashboxdata", + "label": "dashBoxData()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "dashboxdata()", + "source_file": "admin_panel/context_processor.py", + "source_location": "L7" + }, + { + "id": "admin_panel_management_commands_send_daily_report_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L15" + }, + { + "id": "admin_panel_models_customer_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models.py", + "source_location": "L56" + }, + { + "id": "admin_panel_models_customer_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L52" + }, + { + "id": "admin_panel_templatetags_custom_tags_has_group", + "label": "has_group()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "has_group()", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L11" + }, + { + "id": "admin_panel_templatetags_custom_tags_tojalali", + "label": "toJalali()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "tojalali()", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L7" + }, + { + "id": "admin_panel_templatetags_remove_q_p_remove_query_param", + "label": "remove_query_param()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "remove_query_param()", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L6" + }, + { + "id": "admin_panel_views_customerhesabdariadd", + "label": "customerHesabdariAdd()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "customerhesabdariadd()", + "source_file": "admin_panel/views.py", + "source_location": "L2074" + }, + { + "id": "admin_panel_views_customersadd", + "label": "customersAdd()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "customersadd()", + "source_file": "admin_panel/views.py", + "source_location": "L987" + }, + { + "id": "check_finance_check_financial_discrepancy", + "label": "check_financial_discrepancy()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "check_financial_discrepancy()", + "source_file": "check_finance.py", + "source_location": "L13" + }, + { + "id": "ghost_hunter_run_360_audit", + "label": "run_360_audit()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "run_360_audit()", + "source_file": "ghost_hunter.py", + "source_location": "L12" + }, + { + "id": "reconciliation_tool_run_audit", + "label": "run_audit()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "run_audit()", + "source_file": "reconciliation_tool.py", + "source_location": "L21" + }, + { + "id": "admin_panel_models_factor_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Invoice Management Logic", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models.py", + "source_location": "L175" + }, + { + "id": "admin_panel_views_newfactor", + "label": "newFactor()", + "_callable": true, + "_origin": "ast", + "community": 1, + "community_name": "Invoice Management Logic", + "file_type": "code", + "norm_label": "newfactor()", + "source_file": "admin_panel/views.py", + "source_location": "L1545" + }, + { + "id": "admin_panel_models_productinstore_delete", + "label": ".delete()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".delete()", + "source_file": "admin_panel/models.py", + "source_location": "L271" + }, + { + "id": "admin_panel_models_productinstore_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L221" + }, + { + "id": "admin_panel_views_store", + "label": "store()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "store()", + "source_file": "admin_panel/views.py", + "source_location": "L1149" + }, + { + "id": "admin_panel_models_productcategory_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L115" + }, + { + "id": "admin_panel_models_productinstore_save", + "label": ".save()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": ".save()", + "source_file": "admin_panel/models.py", + "source_location": "L225" + }, + { + "id": "admin_panel_views_customer", + "label": "customer()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customer()", + "source_file": "admin_panel/views.py", + "source_location": "L816" + }, + { + "id": "admin_panel_views_customerfactor", + "label": "customerFactor()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customerfactor()", + "source_file": "admin_panel/views.py", + "source_location": "L927" + }, + { + "id": "admin_panel_views_customernew", + "label": "customerNew()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customernew()", + "source_file": "admin_panel/views.py", + "source_location": "L827" + }, + { + "id": "admin_panel_views_customernew2", + "label": "customerNew2()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customernew2()", + "source_file": "admin_panel/views.py", + "source_location": "L839" + }, + { + "id": "admin_panel_views_operationproduct", + "label": "operationProduct()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "operationproduct()", + "source_file": "admin_panel/views.py", + "source_location": "L1251" + }, + { + "id": "admin_panel_views_operations", + "label": "operations()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "operations()", + "source_file": "admin_panel/views.py", + "source_location": "L1222" + }, + { + "id": "admin_panel_views_productadd", + "label": "productAdd()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "productadd()", + "source_file": "admin_panel/views.py", + "source_location": "L1376" + }, + { + "id": "admin_panel_views_productedit", + "label": "productEdit()", + "_callable": true, + "_origin": "ast", + "community": 11, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "productedit()", + "source_file": "admin_panel/views.py", + "source_location": "L1402" + }, + { + "id": "admin_panel_views_actionlist", + "label": "ActionList()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "actionlist()", + "source_file": "admin_panel/views.py", + "source_location": "L2184" + }, + { + "id": "admin_panel_views_actionlistall", + "label": "ActionListAll()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "actionlistall()", + "source_file": "admin_panel/views.py", + "source_location": "L2241" + }, + { + "id": "admin_panel_views_actionlisttoday", + "label": "ActionListToday()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "actionlisttoday()", + "source_file": "admin_panel/views.py", + "source_location": "L2248" + }, + { + "id": "admin_panel_views_actionlistuser", + "label": "ActionListUser()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "actionlistuser()", + "source_file": "admin_panel/views.py", + "source_location": "L2191" + }, + { + "id": "admin_panel_views_actionlistusertoday", + "label": "ActionListUserToday()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "actionlistusertoday()", + "source_file": "admin_panel/views.py", + "source_location": "L2260" + }, + { + "id": "admin_panel_views_customeraction", + "label": "customerAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customeraction()", + "source_file": "admin_panel/views.py", + "source_location": "L2099" + }, + { + "id": "admin_panel_views_customereditaction", + "label": "customerEditAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customereditaction()", + "source_file": "admin_panel/views.py", + "source_location": "L2198" + }, + { + "id": "admin_panel_views_customernazar", + "label": "customerNazar()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customernazar()", + "source_file": "admin_panel/views.py", + "source_location": "L2135" + }, + { + "id": "admin_panel_views_customernewaction", + "label": "customerNewAction()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customernewaction()", + "source_file": "admin_panel/views.py", + "source_location": "L2143" + }, + { + "id": "admin_panel_views_rezayat_dashboard", + "label": "rezayat_dashboard()", + "_callable": true, + "_origin": "ast", + "community": 13, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "rezayat_dashboard()", + "source_file": "admin_panel/views.py", + "source_location": "L2360" + }, + { + "id": "admin_panel_admin_storeroomadmin_get_owners_count", + "label": ".get_owners_count()", + "_callable": true, + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "code", + "norm_label": ".get_owners_count()", + "source_file": "admin_panel/admin.py", + "source_location": "L74" + }, + { + "id": "admin_panel_views_customeredit", + "label": "customerEdit()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customeredit()", + "source_file": "admin_panel/views.py", + "source_location": "L1029" + }, + { + "id": "admin_panel_views_customerhesabdari", + "label": "customerHesabdari()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customerhesabdari()", + "source_file": "admin_panel/views.py", + "source_location": "L2047" + }, + { + "id": "admin_panel_views_productsjson", + "label": "productsJson()", + "_callable": true, + "_origin": "ast", + "community": 17, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "productsjson()", + "source_file": "admin_panel/views.py", + "source_location": "L939" + }, + { + "id": "admin_panel_models_storeroom_str", + "label": ".__str__()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": ".__str__()", + "source_file": "admin_panel/models.py", + "source_location": "L92" + }, + { + "id": "admin_panel_views_productmojodi", + "label": "productMojodi()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "productmojodi()", + "source_file": "admin_panel/views.py", + "source_location": "L961" + }, + { + "id": "admin_panel_views_store_transfers", + "label": "store_transfers()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "store_transfers()", + "source_file": "admin_panel/views.py", + "source_location": "L1280" + }, + { + "id": "admin_panel_views_newoperation", + "label": "newOperation()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "newoperation()", + "source_file": "admin_panel/views.py", + "source_location": "L1270" + }, + { + "id": "admin_panel_views_newstore", + "label": "newStore()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "newstore()", + "source_file": "admin_panel/views.py", + "source_location": "L1366" + }, + { + "id": "admin_panel_views_stores", + "label": "stores()", + "_callable": true, + "_origin": "ast", + "community": 19, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "stores()", + "source_file": "admin_panel/views.py", + "source_location": "L1133" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_add_arguments", + "label": ".add_arguments()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": ".add_arguments()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L15" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "label": "._execute_by_immediate_chunks()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "._execute_by_immediate_chunks()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L88" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "label": "._execute_hybrid_migration()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "._execute_hybrid_migration()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L114" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L28" + }, + { + "id": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "label": "._process_single_chunk()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "._process_single_chunk()", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L122" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "label": ".cleanup_resources()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "code", + "norm_label": ".cleanup_resources()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L157" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "label": ".handle()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "code", + "norm_label": ".handle()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L37" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "label": ".handle_critical_failure()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "code", + "norm_label": ".handle_critical_failure()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L173" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_handle_progress_callback", + "label": "progress_callback()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "code", + "norm_label": "progress_callback()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L82" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_init", + "label": ".__init__()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "code", + "norm_label": ".__init__()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L20" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "label": "._signal_handler()", + "_callable": true, + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "code", + "norm_label": "._signal_handler()", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L29" + }, + { + "id": "admin_panel_views_newfactor2", + "label": "newFactor2()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Invoice Management Logic", + "file_type": "code", + "norm_label": "newfactor2()", + "source_file": "admin_panel/views.py", + "source_location": "L1690" + }, + { + "id": "admin_panel_views_parse_jalali_date", + "label": "_parse_jalali_date()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Invoice Management Logic", + "file_type": "code", + "norm_label": "_parse_jalali_date()", + "source_file": "admin_panel/views.py", + "source_location": "L52" + }, + { + "id": "admin_panel_views_parse_timestamp", + "label": "_parse_timestamp()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "Invoice Management Logic", + "file_type": "code", + "norm_label": "_parse_timestamp()", + "source_file": "admin_panel/views.py", + "source_location": "L64" + }, + { + "id": "admin_panel_views_customerfactors", + "label": "customerFactors()", + "_callable": true, + "_origin": "ast", + "community": 20, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customerfactors()", + "source_file": "admin_panel/views.py", + "source_location": "L862" + }, + { + "id": "admin_panel_views_operation", + "label": "operation()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "operation()", + "source_file": "admin_panel/views.py", + "source_location": "L1426" + }, + { + "id": "admin_panel_views_api_check_sabt_inquiry", + "label": "api_check_sabt_inquiry()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "api_check_sabt_inquiry()", + "source_file": "admin_panel/views.py", + "source_location": "L2874" + }, + { + "id": "admin_panel_views_inventory_movements_report", + "label": "inventory_movements_report()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "inventory_movements_report()", + "source_file": "admin_panel/views.py", + "source_location": "L312" + }, + { + "id": "admin_panel_views_run_bpi_cheque_inquiry_logic", + "label": "run_bpi_cheque_inquiry_logic()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "run_bpi_cheque_inquiry_logic()", + "source_file": "admin_panel/views.py", + "source_location": "L2808" + }, + { + "id": "admin_panel_views_safe_int", + "label": "_safe_int()", + "_callable": true, + "_origin": "ast", + "community": 23, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "_safe_int()", + "source_file": "admin_panel/views.py", + "source_location": "L42" + }, + { + "id": "manage_main", + "label": "main()", + "_callable": true, + "_origin": "ast", + "community": 26, + "community_name": "Application Entrypoint Scripts", + "file_type": "code", + "norm_label": "main()", + "source_file": "manage.py", + "source_location": "L7" + }, + { + "id": "admin_views_index", + "label": "index()", + "_callable": true, + "_origin": "ast", + "community": 27, + "community_name": "Core Admin App", + "file_type": "code", + "norm_label": "index()", + "source_file": "admin/views.py", + "source_location": "L7" + }, + { + "id": "admin_panel_views_actionjson", + "label": "ActionJson()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "actionjson()", + "source_file": "admin_panel/views.py", + "source_location": "L946" + }, + { + "id": "admin_panel_views_api_check_status_inquiry", + "label": "api_check_status_inquiry()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "api_check_status_inquiry()", + "source_file": "admin_panel/views.py", + "source_location": "L2851" + }, + { + "id": "admin_panel_views_customerjson", + "label": "CustomerJson()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customerjson()", + "source_file": "admin_panel/views.py", + "source_location": "L953" + }, + { + "id": "admin_panel_views_customers", + "label": "customers()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customers()", + "source_file": "admin_panel/views.py", + "source_location": "L762" + }, + { + "id": "admin_panel_views_p_login", + "label": "p_login()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "p_login()", + "source_file": "admin_panel/views.py", + "source_location": "L74" + }, + { + "id": "admin_panel_views_p_logout", + "label": "p_logout()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "p_logout()", + "source_file": "admin_panel/views.py", + "source_location": "L95" + }, + { + "id": "admin_panel_views_parse_cheque_result_html", + "label": "parse_cheque_result_html()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "parse_cheque_result_html()", + "source_file": "admin_panel/views.py", + "source_location": "L2690" + }, + { + "id": "admin_panel_views_run_cbi_sayad_inquiry_logic", + "label": "run_cbi_sayad_inquiry_logic()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "run_cbi_sayad_inquiry_logic()", + "source_file": "admin_panel/views.py", + "source_location": "L2710" + }, + { + "id": "admin_panel_views_solve_base64_captcha", + "label": "solve_base64_captcha()", + "_callable": true, + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "solve_base64_captcha()", + "source_file": "admin_panel/views.py", + "source_location": "L2645" + }, + { + "id": "admin_panel_views_addsarresid", + "label": "addSarresid()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "addsarresid()", + "source_file": "admin_panel/views.py", + "source_location": "L2490" + }, + { + "id": "admin_panel_views_pardakhtnesiye", + "label": "pardakhtNesiye()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "pardakhtnesiye()", + "source_file": "admin_panel/views.py", + "source_location": "L2581" + }, + { + "id": "admin_panel_views_passcheck", + "label": "passCheck()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "Financial and Accounting Views", + "file_type": "code", + "norm_label": "passcheck()", + "source_file": "admin_panel/views.py", + "source_location": "L2411" + }, + { + "id": "admin_panel_views_bedehi", + "label": "bedehi()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "bedehi()", + "source_file": "admin_panel/views.py", + "source_location": "L593" + }, + { + "id": "admin_panel_views_bedehikhadamat", + "label": "bedehiKhadamat()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "bedehikhadamat()", + "source_file": "admin_panel/views.py", + "source_location": "L731" + }, + { + "id": "admin_panel_views_bedehinasb", + "label": "bedehiNasb()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "bedehinasb()", + "source_file": "admin_panel/views.py", + "source_location": "L747" + }, + { + "id": "admin_panel_views_customerdel", + "label": "customerDel()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customerdel()", + "source_file": "admin_panel/views.py", + "source_location": "L1999" + }, + { + "id": "admin_panel_views_customerssearch", + "label": "customersSearch()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "customerssearch()", + "source_file": "admin_panel/views.py", + "source_location": "L792" + }, + { + "id": "admin_panel_views_entezar", + "label": "entezar()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "entezar()", + "source_file": "admin_panel/views.py", + "source_location": "L1072" + }, + { + "id": "admin_panel_views_factordel", + "label": "FactorDel()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "factordel()", + "source_file": "admin_panel/views.py", + "source_location": "L1892" + }, + { + "id": "admin_panel_views_financial_dashboard", + "label": "financial_dashboard()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "financial_dashboard()", + "source_file": "admin_panel/views.py", + "source_location": "L394" + }, + { + "id": "admin_panel_views_hesabdari", + "label": "hesabdari()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "hesabdari()", + "source_file": "admin_panel/views.py", + "source_location": "L612" + }, + { + "id": "admin_panel_views_hesabdari_checkpass", + "label": "hesabdari_checkPass()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "hesabdari_checkpass()", + "source_file": "admin_panel/views.py", + "source_location": "L667" + }, + { + "id": "admin_panel_views_hesabdari_checkpassfail", + "label": "hesabdari_checkPassFail()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "hesabdari_checkpassfail()", + "source_file": "admin_panel/views.py", + "source_location": "L687" + }, + { + "id": "admin_panel_views_hesabdari_residnashone", + "label": "hesabdari_residnashone()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "hesabdari_residnashone()", + "source_file": "admin_panel/views.py", + "source_location": "L710" + }, + { + "id": "admin_panel_views_productdel", + "label": "productDel()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "productdel()", + "source_file": "admin_panel/views.py", + "source_location": "L1420" + }, + { + "id": "admin_panel_views_report", + "label": "report()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "report()", + "source_file": "admin_panel/views.py", + "source_location": "L102" + }, + { + "id": "admin_panel_views_report_debtors_no_vosol", + "label": "report_debtors_no_vosol()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "report_debtors_no_vosol()", + "source_file": "admin_panel/views.py", + "source_location": "L202" + }, + { + "id": "admin_panel_views_rezayat", + "label": "rezayat()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "rezayat()", + "source_file": "admin_panel/views.py", + "source_location": "L2293" + }, + { + "id": "admin_panel_views_rezayatedit", + "label": "rezayatEdit()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "rezayatedit()", + "source_file": "admin_panel/views.py", + "source_location": "L2325" + }, + { + "id": "admin_panel_views_sarresidh", + "label": "sarresidh()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "sarresidh()", + "source_file": "admin_panel/views.py", + "source_location": "L2063" + }, + { + "id": "admin_panel_views_update_check_info", + "label": "update_check_info()", + "_callable": true, + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "update_check_info()", + "source_file": "admin_panel/views.py", + "source_location": "L2442" + }, + { + "id": "abstractbaseuser", + "label": "AbstractBaseUser", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "abstractbaseuser", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_models", + "label": "admin_panel/models.py", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "admin_panel/models.py", + "source_file": "admin_panel/models.py", + "source_location": "L1" + }, + { + "id": "admin_panel_services", + "label": "services.py", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "services.py", + "source_file": "admin_panel/services.py", + "source_location": "L1" + }, + { + "id": "atomic", + "label": "atomic", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "code", + "norm_label": "atomic", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_models_rationale_97", + "label": "\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0648\u0627\u0633\u0637\u060c \u067e\u0634\u062a \u0635\u062d\u0646\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0641\u0642\u0637 \u0642\u0627\u0646\u0648\u0646 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f. \u06a9\u062f\u0647\u0627\u06cc\u2026", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u0627\u06cc\u0646 \u062c\u062f\u0648\u0644 \u0648\u0627\u0633\u0637\u060c \u067e\u0634\u062a \u0635\u062d\u0646\u0647 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0641\u0642\u0637 \u0642\u0627\u0646\u0648\u0646 \u0645\u0627\u0644\u06a9\u06cc\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f. \u06a9\u062f\u0647\u0627\u06cc...", + "source_file": "admin_panel/models.py", + "source_location": "L97" + }, + { + "id": "admin_panel_services_rationale_160", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u0648\u0633\u0637 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L160" + }, + { + "id": "admin_panel_services_rationale_187", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u0627\u0646\u0635\u0631\u0627\u0641 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0648\u0633\u0637 \u0627\u06cc\u062c\u0627\u062f\u06a9\u0646\u0646\u062f\u0647 \u06cc\u0627 \u0645\u0633\u0626\u0648\u0644 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u0627\u0646\u0635\u0631\u0627\u0641 \u0627\u0632 \u0627\u0646\u062a\u0642\u0627\u0644 \u062a\u0648\u0633\u0637 \u0627\u06cc\u062c\u0627\u062f\u06a9\u0646\u0646\u062f\u0647 \u06cc\u0627 \u0645\u0633\u064a\u0648\u0644 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "source_file": "admin_panel/services.py", + "source_location": "L187" + }, + { + "id": "admin_panel_services_rationale_20", + "label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0642\u0635\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L20" + }, + { + "id": "admin_panel_services_rationale_30", + "label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u0628\u0631\u0631\u0633\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0627\u0646\u0628\u0627\u0631 \u0645\u0628\u062f\u0627", + "source_file": "admin_panel/services.py", + "source_location": "L30" + }, + { + "id": "admin_panel_services_rationale_40", + "label": "\u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 \u0645\u0634\u062e\u0635. \u067e\u0627\u0631\u0627\u0645\u062a\u0631 lock_for_update \u062f\u0631 \u0632\u0645\u0627\u0646\u2026", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0648\u062c\u0648\u062f\u06cc \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0644\u0627 \u062f\u0631 \u0627\u0646\u0628\u0627\u0631 \u0645\u0634\u062e\u0635. \u067e\u0627\u0631\u0627\u0645\u062a\u0631 lock_for_update \u062f\u0631 \u0632\u0645\u0627\u0646...", + "source_file": "admin_panel/services.py", + "source_location": "L40" + }, + { + "id": "admin_panel_services_rationale_64", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u062b\u0628\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u062a\u0642\u0627\u0644 \u062c\u062f\u06cc\u062f", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u062b\u0628\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0646\u062a\u0642\u0627\u0644 \u062c\u062f\u06cc\u062f", + "source_file": "admin_panel/services.py", + "source_location": "L64" + }, + { + "id": "admin_panel_services_rationale_99", + "label": "\u0633\u0631\u0648\u06cc\u0633 \u062a\u0627\u06cc\u06cc\u062f \u0627\u0646\u062a\u0642\u0627\u0644: \u0642\u0641\u0644 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631\u060c \u06a9\u0633\u0631 \u0627\u0632 \u0645\u0628\u062f\u0627\u060c \u0648\u0631\u0648\u062f \u0628\u0647\u2026", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u0633\u0631\u0648\u06cc\u0633 \u062a\u0627\u06cc\u06cc\u062f \u0627\u0646\u062a\u0642\u0627\u0644: \u0642\u0641\u0644 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631\u060c \u06a9\u0633\u0631 \u0627\u0632 \u0645\u0628\u062f\u0627\u060c \u0648\u0631\u0648\u062f \u0628\u0647...", + "source_file": "admin_panel/services.py", + "source_location": "L99" + }, + { + "id": "admin_panel_views_rationale_1320", + "label": "\u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0645\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u0628\u0627\u0631\u062f\u0627\u0631 (\u062a\u0627\u06cc\u06cc\u062f\u060c \u0631\u062f\u060c \u0627\u0646\u0635\u0631\u0627\u0641) \u0628\u0627 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0627\u062a\u0645\u06cc\u06a9", + "_origin": "ast", + "community": 0, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u0645\u0646 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0646\u0628\u0627\u0631\u062f\u0627\u0631 (\u062a\u0627\u06cc\u06cc\u062f\u060c \u0631\u062f\u060c \u0627\u0646\u0635\u0631\u0627\u0641) \u0628\u0627 \u062a\u0631\u0627\u06a9\u0646\u0634\u200c\u0647\u0627\u06cc \u0627\u062a\u0645\u06cc\u06a9", + "source_file": "admin_panel/views.py", + "source_location": "L1320" + }, + { + "id": "admin_panel_context_processor", + "label": "context_processor.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "context_processor.py", + "source_file": "admin_panel/context_processor.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_send_daily_report", + "label": "send_daily_report.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "send_daily_report.py", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_send_daily_report_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_templatetags_custom_tags", + "label": "custom_tags.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "custom_tags.py", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_remove_q_p", + "label": "remove_q_p.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "remove_q_p.py", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L1" + }, + { + "id": "check_finance", + "label": "check_finance.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "check_finance.py", + "source_file": "check_finance.py", + "source_location": "L1" + }, + { + "id": "filter", + "label": "filter", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "filter", + "source_file": "", + "source_location": "" + }, + { + "id": "ghost_hunter", + "label": "ghost_hunter.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "ghost_hunter.py", + "source_file": "ghost_hunter.py", + "source_location": "L1" + }, + { + "id": "khatibi_asgi", + "label": "asgi.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "asgi.py", + "source_file": "khatibi/asgi.py", + "source_location": "L1" + }, + { + "id": "khatibi_wsgi", + "label": "wsgi.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "wsgi.py", + "source_file": "khatibi/wsgi.py", + "source_location": "L1" + }, + { + "id": "reconciliation_tool", + "label": "reconciliation_tool.py", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "code", + "norm_label": "reconciliation_tool.py", + "source_file": "reconciliation_tool.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_remove_q_p_rationale_7", + "label": "Remove a specific query parameter from a URL.", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "rationale", + "norm_label": "remove a specific query parameter from a url.", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L7" + }, + { + "id": "khatibi_asgi_rationale_1", + "label": "ASGI config for khatibi project. It exposes the ASGI callable as a module-level\u2026", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "rationale", + "norm_label": "asgi config for khatibi project. it exposes the asgi callable as a module-level...", + "source_file": "khatibi/asgi.py", + "source_location": "L1" + }, + { + "id": "khatibi_wsgi_rationale_1", + "label": "WSGI config for khatibi project. It exposes the WSGI callable as a module-level\u2026", + "_origin": "ast", + "community": 1, + "community_name": "Daily Reporting Command", + "file_type": "rationale", + "norm_label": "wsgi config for khatibi project. it exposes the wsgi callable as a module-level...", + "source_file": "khatibi/wsgi.py", + "source_location": "L1" + }, + { + "id": "admin_admin", + "label": "admin/admin.py", + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "code", + "norm_label": "admin/admin.py", + "source_file": "admin/admin.py", + "source_location": "L1" + }, + { + "id": "admin_panel_admin", + "label": "admin_panel/admin.py", + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "code", + "norm_label": "admin_panel/admin.py", + "source_file": "admin_panel/admin.py", + "source_location": "L1" + }, + { + "id": "register", + "label": "register", + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "code", + "norm_label": "register", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_admin_rationale_54", + "label": "\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a\u2026", + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "rationale", + "norm_label": "\u0627\u06cc\u0646 \u06a9\u0644\u0627\u0633 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0635\u0648\u0631\u062a \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a...", + "source_file": "admin_panel/admin.py", + "source_location": "L54" + }, + { + "id": "admin_panel_admin_rationale_75", + "label": "\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u0646\u0628\u0627\u0631\u0647\u0627", + "_origin": "ast", + "community": 15, + "community_name": "Django Admin Configuration", + "file_type": "rationale", + "norm_label": "\u0646\u0645\u0627\u06cc\u0634 \u062a\u0639\u062f\u0627\u062f \u0645\u0627\u0644\u06a9\u06cc\u0646 \u062f\u0631 \u0644\u06cc\u0633\u062a \u0627\u0635\u0644\u06cc \u0627\u0646\u0628\u0627\u0631\u0647\u0627", + "source_file": "admin_panel/admin.py", + "source_location": "L75" + }, + { + "id": "admin_models", + "label": "admin/models.py", + "_origin": "ast", + "community": 16, + "community_name": "Core Application Models", + "file_type": "code", + "norm_label": "admin/models.py", + "source_file": "admin/models.py", + "source_location": "L1" + }, + { + "id": "admin_panel_views_rationale_1281", + "label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0648 \u06a9\u0627\u0631\u062a\u0627\u0628\u0644 \u062c\u0627\u0645\u0639 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631", + "_origin": "ast", + "community": 19, + "community_name": "Inventory and Product Models", + "file_type": "rationale", + "norm_label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0648 \u06a9\u0627\u0631\u062a\u0627\u0628\u0644 \u062c\u0627\u0645\u0639 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0646\u062a\u0642\u0627\u0644\u200c\u0647\u0627\u06cc \u0627\u0646\u0628\u0627\u0631", + "source_file": "admin_panel/views.py", + "source_location": "L1281" + }, + { + "id": "admin_panel_management_commands_gt_esh", + "label": "gt_esh.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "gt_esh.py", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_gt_esh_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup", + "label": "sqlite_db_backup.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "sqlite_db_backup.py", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L1" + }, + { + "id": "khatibi_production_settings", + "label": "production_settings.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "production_settings.py", + "source_file": "khatibi/production_settings.py", + "source_location": "L1" + }, + { + "id": "khatibi_settings", + "label": "settings.py", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "code", + "norm_label": "settings.py", + "source_file": "khatibi/settings.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_115", + "label": "\u0645\u062a\u062f \u06a9\u0645\u06a9\u06cc \u0635\u0631\u0641\u0627\u064b \u0628\u0631\u0627\u06cc \u062d\u0627\u0644\u062a \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc (Dry Run) \u0628\u062f\u0648\u0646 \u06a9\u0627\u0645\u06cc\u062a \u0632\u0646\u062f\u0647", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "rationale", + "norm_label": "\u0645\u062a\u062f \u06a9\u0645\u06a9\u06cc \u0635\u0631\u0641\u0627 \u0628\u0631\u0627\u06cc \u062d\u0627\u0644\u062a \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc (dry run) \u0628\u062f\u0648\u0646 \u06a9\u0627\u0645\u06cc\u062a \u0632\u0646\u062f\u0647", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L115" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_123", + "label": "\u0647\u0633\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u06cc\u0628\u0631\u06cc\u062f\u06cc: \u06cc\u06a9 \u0628\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631 \u0631\u0645\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u0646\u0648\u0634\u062a\u0646", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "rationale", + "norm_label": "\u0647\u0633\u062a\u0647 \u067e\u0631\u062f\u0627\u0632\u0634 \u0647\u06cc\u0628\u0631\u06cc\u062f\u06cc: \u06cc\u06a9 \u0628\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0646 \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631 \u0631\u0645\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u0646\u0648\u0634\u062a\u0646", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L123" + }, + { + "id": "admin_panel_management_commands_gt_esh_rationale_89", + "label": "\u0627\u062c\u0631\u0627\u06cc \u062d\u0644\u0642\u0647\u200c\u0647\u0627\u06cc \u0632\u0646\u062f\u0647 \u0628\u0627 \u0642\u0641\u0644 \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc IMMEDIATE \u062c\u0647\u062a \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062e\u0637\u0627\u06cc \u0642\u0641\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "rationale", + "norm_label": "\u0627\u062c\u0631\u0627\u06cc \u062d\u0644\u0642\u0647\u200c\u0647\u0627\u06cc \u0632\u0646\u062f\u0647 \u0628\u0627 \u0642\u0641\u0644 \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc immediate \u062c\u0647\u062a \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062e\u0637\u0627\u06cc \u0642\u0641\u0644 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L89" + }, + { + "id": "khatibi_settings_rationale_1", + "label": "Django settings for khatibi project. Generated by 'django-admin startproject'\u2026", + "_origin": "ast", + "community": 2, + "community_name": "Database Backup Command", + "file_type": "rationale", + "norm_label": "django settings for khatibi project. generated by 'django-admin startproject'...", + "source_file": "khatibi/settings.py", + "source_location": "L1" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_py_basecommand", + "label": "BaseCommand", + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "code", + "norm_label": "basecommand", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_rationale_158", + "label": "\u062a\u0636\u0645\u06cc\u0646 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc Volume \u0647\u0627\u06cc \u062f\u0627\u06a9\u0631 \u062f\u0631 \u0647\u0631 \u0634\u0631\u0627\u06cc\u0637\u06cc", + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "rationale", + "norm_label": "\u062a\u0636\u0645\u06cc\u0646 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc volume \u0647\u0627\u06cc \u062f\u0627\u06a9\u0631 \u062f\u0631 \u0647\u0631 \u0634\u0631\u0627\u06cc\u0637\u06cc", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L158" + }, + { + "id": "admin_panel_management_commands_sqlite_db_backup_rationale_30", + "label": "\u0641\u0642\u0637 \u0641\u0644\u06af \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062e\u0631\u0648\u062c \u0646\u0627\u06af\u0647\u0627\u0646\u06cc (sys.exit) \u0628\u0627\u0639\u062b \u062e\u0631\u0627\u0628\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0646\u062c\u06cc\u0646 \u062f\u0631\u2026", + "_origin": "ast", + "community": 2, + "community_name": "Resource Cleanup Command", + "file_type": "rationale", + "norm_label": "\u0641\u0642\u0637 \u0641\u0644\u06af \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u062e\u0631\u0648\u062c \u0646\u0627\u06af\u0647\u0627\u0646\u06cc (sys.exit) \u0628\u0627\u0639\u062b \u062e\u0631\u0627\u0628\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u0646\u062c\u06cc\u0646 \u062f\u0631...", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L30" + }, + { + "id": "exception", + "label": "Exception", + "_origin": "ast", + "community": 20, + "community_name": "Invoice Management Logic", + "file_type": "code", + "norm_label": "exception", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_rationale_39", + "label": "\u062e\u0637\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0646\u0628\u0627\u0631", + "_origin": "ast", + "community": 20, + "community_name": "Invoice Management Logic", + "file_type": "rationale", + "norm_label": "\u062e\u0637\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0645\u0648\u062c\u0648\u062f\u06cc \u0627\u0646\u0628\u0627\u0631", + "source_file": "admin_panel/views.py", + "source_location": "L39" + }, + { + "id": "admin_panel_views_rationale_53", + "label": "\u062a\u0628\u062f\u06cc\u0644 \u0627\u0645\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 pDatepicker \u0628\u0647 \u0645\u06cc\u0644\u0627\u062f\u06cc", + "_origin": "ast", + "community": 20, + "community_name": "Invoice Management Logic", + "file_type": "rationale", + "norm_label": "\u062a\u0628\u062f\u06cc\u0644 \u0627\u0645\u0646 \u062a\u0627\u0631\u06cc\u062e \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 pdatepicker \u0628\u0647 \u0645\u06cc\u0644\u0627\u062f\u06cc", + "source_file": "admin_panel/views.py", + "source_location": "L53" + }, + { + "id": "admin_panel_views_rationale_65", + "label": "\u062a\u0628\u062f\u06cc\u0644 \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u062a\u0627\u06cc\u0645\u200c\u0627\u0633\u062a\u0645\u067e\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a", + "_origin": "ast", + "community": 20, + "community_name": "Invoice Management Logic", + "file_type": "rationale", + "norm_label": "\u062a\u0628\u062f\u06cc\u0644 \u06cc\u0648\u0646\u06cc\u06a9\u0633 \u062a\u0627\u06cc\u0645\u200c\u0627\u0633\u062a\u0645\u067e\u200c\u0647\u0627\u06cc \u0627\u0631\u0633\u0627\u0644\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a", + "source_file": "admin_panel/views.py", + "source_location": "L65" + }, + { + "id": "github_copilot_instructions", + "label": "copilot-instructions.md", + "_origin": "ast", + "community": 21, + "community_name": "Graphify Tooling", + "file_type": "document", + "node_kind": "page", + "norm_label": "copilot-instructions.md", + "source_file": ".github/copilot-instructions.md", + "source_location": "L1" + }, + { + "id": "github_copilot_instructions_graphify", + "label": "graphify", + "_origin": "ast", + "community": 21, + "community_name": "Graphify Tooling", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify", + "rationale": "A tool for querying repository architecture and structure.", + "source_file": ".github/copilot-instructions.md", + "source_location": "L1" + }, + { + "id": "admin_panel_views_rationale_2875", + "label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062b\u0628\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u067e\u0627\u0633\u0627\u0631\u06af\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc: sayad_id, national_id,\u2026", + "_origin": "ast", + "community": 23, + "community_name": "User Action Views", + "file_type": "rationale", + "norm_label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u062b\u0628\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u067e\u0627\u0633\u0627\u0631\u06af\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc: sayad_id, national_id,...", + "source_file": "admin_panel/views.py", + "source_location": "L2875" + }, + { + "id": "admin_panel_views_rationale_313", + "label": "\u06af\u0632\u0627\u0631\u0634 \u062c\u0627\u0645\u0639 \u06af\u0631\u062f\u0634 \u0648 \u062e\u0631\u0648\u062c \u06a9\u0627\u0644\u0627 \u0627\u0632 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u06cc\u0644\u062a\u0631 \u0645\u062a\u0646\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0644\u0627\u060c \u0646\u0648\u0639 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c\u2026", + "_origin": "ast", + "community": 23, + "community_name": "User Action Views", + "file_type": "rationale", + "norm_label": "\u06af\u0632\u0627\u0631\u0634 \u062c\u0627\u0645\u0639 \u06af\u0631\u062f\u0634 \u0648 \u062e\u0631\u0648\u062c \u06a9\u0627\u0644\u0627 \u0627\u0632 \u0627\u0646\u0628\u0627\u0631 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0641\u06cc\u0644\u062a\u0631 \u0645\u062a\u0646\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0644\u0627\u060c \u0646\u0648\u0639 \u062a\u0631\u0627\u06a9\u0646\u0634\u060c...", + "source_file": "admin_panel/views.py", + "source_location": "L313" + }, + { + "id": "admin_panel_views_rationale_43", + "label": "\u062a\u0627\u0628\u0639 \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0639\u062f\u062f", + "_origin": "ast", + "community": 23, + "community_name": "User Action Views", + "file_type": "rationale", + "norm_label": "\u062a\u0627\u0628\u0639 \u0627\u0645\u0646 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0639\u062f\u062f", + "source_file": "admin_panel/views.py", + "source_location": "L43" + }, + { + "id": "admin_apps", + "label": "admin/apps.py", + "_origin": "ast", + "community": 24, + "community_name": "Django App Configurations", + "file_type": "code", + "norm_label": "admin/apps.py", + "source_file": "admin/apps.py", + "source_location": "L1" + }, + { + "id": "admin_apps_py_appconfig", + "label": "AppConfig", + "_origin": "ast", + "community": 24, + "community_name": "Django App Configurations", + "file_type": "code", + "norm_label": "appconfig", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_apps", + "label": "admin_panel/apps.py", + "_origin": "ast", + "community": 24, + "community_name": "Django App Configurations", + "file_type": "code", + "norm_label": "admin_panel/apps.py", + "source_file": "admin_panel/apps.py", + "source_location": "L1" + }, + { + "id": "admin_panel_apps_py_appconfig", + "label": "AppConfig", + "_origin": "ast", + "community": 24, + "community_name": "Django App Configurations", + "file_type": "code", + "norm_label": "appconfig", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_migrations_0002_auto_20220114_1616", + "label": "0002_auto_20220114_1616.py", + "_origin": "ast", + "community": 25, + "community_name": "Timezone-related Migrations", + "file_type": "code", + "norm_label": "0002_auto_20220114_1616.py", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0003_auto_20220115_1401", + "label": "0003_auto_20220115_1401.py", + "_origin": "ast", + "community": 25, + "community_name": "Timezone-related Migrations", + "file_type": "code", + "norm_label": "0003_auto_20220115_1401.py", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0031_article_sarresid", + "label": "0031_article_sarresid.py", + "_origin": "ast", + "community": 25, + "community_name": "Timezone-related Migrations", + "file_type": "code", + "norm_label": "0031_article_sarresid.py", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "entrypoint", + "label": "entrypoint.sh", + "_origin": "ast", + "community": 26, + "community_name": "Application Entrypoint Scripts", + "file_type": "code", + "metadata": { + "language": "bash", + "kind": "file" + }, + "norm_label": "entrypoint.sh", + "source_file": "entrypoint.sh", + "source_location": "L1" + }, + { + "id": "entrypoint_sh__entry", + "label": "entrypoint.sh script", + "_origin": "ast", + "community": 26, + "community_name": "Application Entrypoint Scripts", + "file_type": "code", + "metadata": { + "language": "bash", + "kind": "bash_entrypoint" + }, + "norm_label": "entrypoint.sh script", + "source_file": "entrypoint.sh", + "source_location": "L1" + }, + { + "id": "manage", + "label": "manage.py", + "_origin": "ast", + "community": 26, + "community_name": "Application Entrypoint Scripts", + "file_type": "code", + "norm_label": "manage.py", + "source_file": "manage.py", + "source_location": "L1" + }, + { + "id": "manage_rationale_2", + "label": "Django's command-line utility for administrative tasks.", + "_origin": "ast", + "community": 26, + "community_name": "Application Entrypoint Scripts", + "file_type": "rationale", + "norm_label": "django's command-line utility for administrative tasks.", + "source_file": "manage.py", + "source_location": "L2" + }, + { + "id": "manage_rationale_8", + "label": "Run administrative tasks.", + "_origin": "ast", + "community": 26, + "community_name": "Application Entrypoint Scripts", + "file_type": "rationale", + "norm_label": "run administrative tasks.", + "source_file": "manage.py", + "source_location": "L8" + }, + { + "id": "admin_init", + "label": "admin/__init__.py", + "_origin": "ast", + "community": 27, + "community_name": "Core Admin App", + "file_type": "code", + "norm_label": "admin/__init__.py", + "source_file": "admin/__init__.py", + "source_location": null + }, + { + "id": "admin_urls", + "label": "admin/urls.py", + "_origin": "ast", + "community": 27, + "community_name": "Core Admin App", + "file_type": "code", + "norm_label": "admin/urls.py", + "source_file": "admin/urls.py", + "source_location": "L1" + }, + { + "id": "admin_views", + "label": "admin/views.py", + "_origin": "ast", + "community": 27, + "community_name": "Core Admin App", + "file_type": "code", + "norm_label": "admin/views.py", + "source_file": "admin/views.py", + "source_location": "L1" + }, + { + "id": "admin_panel_init", + "label": "admin_panel/__init__.py", + "_origin": "ast", + "community": 28, + "community_name": "Project URL Configuration", + "file_type": "code", + "norm_label": "admin_panel/__init__.py", + "source_file": "admin_panel/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_urls", + "label": "admin_panel/urls.py", + "_origin": "ast", + "community": 28, + "community_name": "Project URL Configuration", + "file_type": "code", + "norm_label": "admin_panel/urls.py", + "source_file": "admin_panel/urls.py", + "source_location": "L1" + }, + { + "id": "khatibi_urls", + "label": "khatibi/urls.py", + "_origin": "ast", + "community": 28, + "community_name": "Project URL Configuration", + "file_type": "code", + "norm_label": "khatibi/urls.py", + "source_file": "khatibi/urls.py", + "source_location": "L1" + }, + { + "id": "khatibi_urls_rationale_1", + "label": "khatibi URL Configuration The `urlpatterns` list routes URLs to views. For more\u2026", + "_origin": "ast", + "community": 28, + "community_name": "Project URL Configuration", + "file_type": "rationale", + "norm_label": "khatibi url configuration the `urlpatterns` list routes urls to views. for more...", + "source_file": "khatibi/urls.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0004_factor_paytype", + "label": "0004_factor_paytype.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0004_factor_paytype.py", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0013_alter_factor_options", + "label": "0013_alter_factor_options.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0013_alter_factor_options.py", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0014_auto_20220123_1348", + "label": "0014_auto_20220123_1348.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0014_auto_20220123_1348.py", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0017_factoriteam_garantyesh", + "label": "0017_factoriteam_garantyesh.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0017_factoriteam_garantyesh.py", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0020_auto_20220126_1532", + "label": "0020_auto_20220126_1532.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0020_auto_20220126_1532.py", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0021_alter_article_type", + "label": "0021_alter_article_type.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0021_alter_article_type.py", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0022_article_typepy", + "label": "0022_article_typepy.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0022_article_typepy.py", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0023_alter_article_typepy", + "label": "0023_alter_article_typepy.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0023_alter_article_typepy.py", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0027_alter_action_nazar", + "label": "0027_alter_action_nazar.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0027_alter_action_nazar.py", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0029_alter_article_options", + "label": "0029_alter_article_options.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0029_alter_article_options.py", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0034_alter_article_sarresid", + "label": "0034_alter_article_sarresid.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0034_alter_article_sarresid.py", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0035_alter_article_sarresid", + "label": "0035_alter_article_sarresid.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0035_alter_article_sarresid.py", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0037_sarresid_sarresiddt", + "label": "0037_sarresid_sarresiddt.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0037_sarresid_sarresiddt.py", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0040_customer_laghv_bazdid", + "label": "0040_customer_laghv_bazdid.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0040_customer_laghv_bazdid.py", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "label": "0047_alter_productinstore_movement_type.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0047_alter_productinstore_movement_type.py", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0055_action_nextnazardt", + "label": "0055_action_nextnazardt.py", + "_origin": "ast", + "community": 3, + "community_name": "Database Schema Migrations", + "file_type": "code", + "norm_label": "0055_action_nextnazardt.py", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0056_auto_20260731_1824", + "label": "0056_auto_20260731_1824.py", + "_origin": "ast", + "community": 30, + "community_name": "Data Validation Migration", + "file_type": "code", + "norm_label": "0056_auto_20260731_1824.py", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L1" + }, + { + "id": "admin_panel_tests", + "label": "admin_panel/tests.py", + "_origin": "ast", + "community": 32, + "community_name": "Application Tests", + "file_type": "code", + "norm_label": "admin_panel/tests.py", + "source_file": "admin_panel/tests.py", + "source_location": "L1" + }, + { + "id": "admin_tests", + "label": "admin/tests.py", + "_origin": "ast", + "community": 32, + "community_name": "Application Tests", + "file_type": "code", + "norm_label": "admin/tests.py", + "source_file": "admin/tests.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0005_auto_20220121_2054", + "label": "0005_auto_20220121_2054.py", + "_origin": "ast", + "community": 34, + "community_name": "Database Schema Migration", + "file_type": "code", + "norm_label": "0005_auto_20220121_2054.py", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0006_auto_20220121_2100", + "label": "0006_auto_20220121_2100.py", + "_origin": "ast", + "community": 35, + "community_name": "Database Schema Migration", + "file_type": "code", + "norm_label": "0006_auto_20220121_2100.py", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0009_remove_storeroom_user", + "label": "0009_remove_storeroom_user.py", + "_origin": "ast", + "community": 36, + "community_name": "Remove StoreRoom User Relation", + "file_type": "code", + "norm_label": "0009_remove_storeroom_user.py", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0010_auto_20220122_1546", + "label": "0010_auto_20220122_1546.py", + "_origin": "ast", + "community": 37, + "community_name": "Database Schema Migration", + "file_type": "code", + "norm_label": "0010_auto_20220122_1546.py", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0025_action_actiontype", + "label": "0025_action_actiontype.py", + "_origin": "ast", + "community": 38, + "community_name": "Add Action Type Field", + "file_type": "code", + "norm_label": "0025_action_actiontype.py", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0028_action_grade", + "label": "0028_action_grade.py", + "_origin": "ast", + "community": 39, + "community_name": "Add Action Grade Field", + "file_type": "code", + "norm_label": "0028_action_grade.py", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0030_auto_20220414_1047", + "label": "0030_auto_20220414_1047.py", + "_origin": "ast", + "community": 40, + "community_name": "Database Schema Migration", + "file_type": "code", + "norm_label": "0030_auto_20220414_1047.py", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0032_article_paystatus", + "label": "0032_article_paystatus.py", + "_origin": "ast", + "community": 41, + "community_name": "Add Article Payment Status", + "file_type": "code", + "norm_label": "0032_article_paystatus.py", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0033_article_nahvepardakht", + "label": "0033_article_nahvepardakht.py", + "_origin": "ast", + "community": 42, + "community_name": "Add Article Payment Method", + "file_type": "code", + "norm_label": "0033_article_nahvepardakht.py", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "label": "0039_customer_last_bazdid_dt.py", + "_origin": "ast", + "community": 43, + "community_name": "Add Customer Last Visit", + "file_type": "code", + "norm_label": "0039_customer_last_bazdid_dt.py", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0041_auto_20240216_1607", + "label": "0041_auto_20240216_1607.py", + "_origin": "ast", + "community": 44, + "community_name": "Database Schema Migration", + "file_type": "code", + "norm_label": "0041_auto_20240216_1607.py", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0044_sarresid_desc", + "label": "0044_sarresid_desc.py", + "_origin": "ast", + "community": 45, + "community_name": "Add Sarresid Description", + "file_type": "code", + "norm_label": "0044_sarresid_desc.py", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0048_alter_productinstore_options", + "label": "0048_alter_productinstore_options.py", + "_origin": "ast", + "community": 46, + "community_name": "Update ProductInStore Options", + "file_type": "code", + "norm_label": "0048_alter_productinstore_options.py", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0049_alter_productinstore_options", + "label": "0049_alter_productinstore_options.py", + "_origin": "ast", + "community": 47, + "community_name": "Update ProductInStore Options", + "file_type": "code", + "norm_label": "0049_alter_productinstore_options.py", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L1" + }, + { + "id": "gemini", + "label": "GEMINI.md", + "_origin": "ast", + "community": 48, + "community_name": "AI Tooling Documentation", + "file_type": "document", + "node_kind": "page", + "norm_label": "gemini.md", + "source_file": "GEMINI.md", + "source_location": "L1" + }, + { + "id": "gemini_graphify", + "label": "graphify", + "_origin": "ast", + "community": 48, + "community_name": "AI Tooling Documentation", + "file_type": "document", + "node_kind": "heading", + "norm_label": "graphify", + "rationale": "Defines the knowledge graph query and update interface for the project.", + "source_file": "GEMINI.md", + "source_location": "L1" + }, + { + "id": "admin_migrations_init", + "label": "admin/migrations/__init__.py", + "_origin": "ast", + "community": 49, + "community_name": "Admin Migrations Package", + "file_type": "code", + "norm_label": "admin/migrations/__init__.py", + "source_file": "admin/migrations/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_views", + "label": "admin_panel/views.py", + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "admin_panel/views.py", + "source_file": "admin_panel/views.py", + "source_location": "L1" + }, + { + "id": "csrf_exempt", + "label": "csrf_exempt", + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "csrf_exempt", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_rationale_2852", + "label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u0645\u0631\u06a9\u0632\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc: sayad_id (GET)", + "_origin": "ast", + "community": 5, + "community_name": "User Action Views", + "file_type": "rationale", + "norm_label": "\u0627\u0633\u062a\u0639\u0644\u0627\u0645 \u0648\u0636\u0639\u06cc\u062a \u0686\u06a9 \u0627\u0632 \u0628\u0627\u0646\u06a9 \u0645\u0631\u06a9\u0632\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0631\u0648\u062f\u06cc: sayad_id (get)", + "source_file": "admin_panel/views.py", + "source_location": "L2852" + }, + { + "id": "admin_panel_management_commands_init", + "label": "commands/__init__.py", + "_origin": "ast", + "community": 57, + "community_name": "Management Commands Package", + "file_type": "code", + "norm_label": "commands/__init__.py", + "source_file": "admin_panel/management/commands/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_management_init", + "label": "management/__init__.py", + "_origin": "ast", + "community": 58, + "community_name": "Management Package", + "file_type": "code", + "norm_label": "management/__init__.py", + "source_file": "admin_panel/management/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_migrations_init", + "label": "admin_panel/migrations/__init__.py", + "_origin": "ast", + "community": 59, + "community_name": "Admin Panel Migrations Package", + "file_type": "code", + "norm_label": "admin_panel/migrations/__init__.py", + "source_file": "admin_panel/migrations/__init__.py", + "source_location": null + }, + { + "id": "login_required", + "label": "login_required", + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "login_required", + "source_file": "", + "source_location": "" + }, + { + "id": "permission_required", + "label": "permission_required", + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "permission_required", + "source_file": "", + "source_location": "" + }, + { + "id": "require_post", + "label": "require_POST", + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "code", + "norm_label": "require_post", + "source_file": "", + "source_location": "" + }, + { + "id": "admin_panel_views_rationale_395", + "label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0647\u0648\u0634 \u0645\u0627\u0644\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0642\u062f\u06cc\u0646\u06af\u06cc (BI Dashboard) \u0645\u062c\u0647\u0632 \u0628\u0647 \u0647\u0633\u062a\u0647 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u06f3\u06f6\u06f0 \u062f\u0631\u062c\u0647\u2026", + "_origin": "ast", + "community": 6, + "community_name": "User Action Views", + "file_type": "rationale", + "norm_label": "\u062f\u0627\u0634\u0628\u0648\u0631\u062f \u0647\u0648\u0634 \u0645\u0627\u0644\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0642\u062f\u06cc\u0646\u06af\u06cc (bi dashboard) \u0645\u062c\u0647\u0632 \u0628\u0647 \u0647\u0633\u062a\u0647 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u06f3\u06f6\u06f0 \u062f\u0631\u062c\u0647...", + "source_file": "admin_panel/views.py", + "source_location": "L395" + }, + { + "id": "admin_panel_migrations_0001_initial", + "label": "0001_initial.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0001_initial.py", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0007_productinstore_factor", + "label": "0007_productinstore_factor.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0007_productinstore_factor.py", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0008_storeroom_user", + "label": "0008_storeroom_user.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0008_storeroom_user.py", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0018_alter_factoriteam_product", + "label": "0018_alter_factoriteam_product.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0018_alter_factoriteam_product.py", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0019_article_articletype", + "label": "0019_article_articletype.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0019_article_articletype.py", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0024_action", + "label": "0024_action.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0024_action.py", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0036_sarresid", + "label": "0036_sarresid.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0036_sarresid.py", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0038_auto_20240213_1735", + "label": "0038_auto_20240213_1735.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0038_auto_20240213_1735.py", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0042_article_user", + "label": "0042_article_user.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0042_article_user.py", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0046_auto_20260624_1818", + "label": "0046_auto_20260624_1818.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0046_auto_20260624_1818.py", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0054_auto_20260715_2250", + "label": "0054_auto_20260715_2250.py", + "_origin": "ast", + "community": 8, + "community_name": "Initial Database Migrations", + "file_type": "code", + "norm_label": "0054_auto_20260715_2250.py", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L1" + }, + { + "id": "admin_panel_templatetags_init", + "label": "templatetags/__init__.py", + "_origin": "ast", + "community": 86, + "community_name": "Template Tags Package", + "file_type": "code", + "norm_label": "templatetags/__init__.py", + "source_file": "admin_panel/templatetags/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_migrations_0011_storeroom_user", + "label": "0011_storeroom_user.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0011_storeroom_user.py", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0012_visitqueue_user", + "label": "0012_visitqueue_user.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0012_visitqueue_user.py", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0015_auto_20220124_0858", + "label": "0015_auto_20220124_0858.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0015_auto_20220124_0858.py", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0016_factor_user", + "label": "0016_factor_user.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0016_factor_user.py", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0026_auto_20220209_1924", + "label": "0026_auto_20220209_1924.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0026_auto_20220209_1924.py", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0043_sarresid_user", + "label": "0043_sarresid_user.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0043_sarresid_user.py", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0045_auto_20260610_1421", + "label": "0045_auto_20260610_1421.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0045_auto_20260610_1421.py", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0050_storetransferrequest", + "label": "0050_storetransferrequest.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0050_storetransferrequest.py", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0051_auto_20260705_1356", + "label": "0051_auto_20260705_1356.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0051_auto_20260705_1356.py", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0052_storeroomowner", + "label": "0052_storeroomowner.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0052_storeroomowner.py", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L1" + }, + { + "id": "admin_panel_migrations_0053_storeroom_owners", + "label": "0053_storeroom_owners.py", + "_origin": "ast", + "community": 9, + "community_name": "User Relation Migrations", + "file_type": "code", + "norm_label": "0053_storeroom_owners.py", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L1" + }, + { + "id": "khatibi_init", + "label": "khatibi/__init__.py", + "_origin": "ast", + "community": 90, + "community_name": "Main Project Package", + "file_type": "code", + "norm_label": "khatibi/__init__.py", + "source_file": "khatibi/__init__.py", + "source_location": null + }, + { + "id": "admin_panel_templates_admin_panel_customerid", + "label": "admin_panel/templates/admin_panel/customerID.html", + "_origin": "semantic", + "community": 17, + "community_name": "Customer Admin Templates", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerid.html", + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "id": "concept_url_admin_panel_newfactor", + "label": "URL: admin_panel:newFactor", + "_origin": "semantic", + "community": 17, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "url: admin_panel:newfactor", + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "id": "admin_panel_urls_customer", + "label": "URL: customer detail", + "_origin": "semantic", + "community": 4, + "community_name": "Customer Detail URL", + "file_type": "concept", + "norm_label": "url: customer detail" + }, + { + "id": "admin_panel_templates_admin_panel_entezarbk", + "label": "admin_panel/templates/admin_panel/entezarBK.html", + "_origin": "semantic", + "community": 69, + "community_name": "Waiting List Backup Template", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/entezarbk.html", + "rationale": "This appears to be a backup or static prototype version of a page, indicated by the 'BK' suffix and the lack of Django template inheritance.", + "source_file": "admin_panel/templates/admin_panel/entezarBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_basehesabdari", + "label": "admin_panel/templates/admin_panel/baseHesabdari.html", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/basehesabdari.html", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_bulma_min_css", + "label": "admin_panel/bulma.min.css", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "code", + "norm_label": "admin_panel/bulma.min.css", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_datatables_datatables_min_js", + "label": "admin_panel/DataTables/datatables.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "code", + "norm_label": "admin_panel/datatables/datatables.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_kamadatepicker_min_js", + "label": "admin_panel/kamadatepicker.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "code", + "norm_label": "admin_panel/kamadatepicker.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_persian-datepicker_min_js", + "label": "admin_panel/persian-datepicker.min.js", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "code", + "norm_label": "admin_panel/persian-datepicker.min.js", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "static_admin_panel_style_css", + "label": "admin_panel/style.css", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "code", + "norm_label": "admin_panel/style.css", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_actionlistusertoday", + "label": "URL: admin_panel:ActionListUserToday", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "concept", + "norm_label": "url: admin_panel:actionlistusertoday", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_entezar", + "label": "URL: admin_panel:entezar", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "concept", + "norm_label": "url: admin_panel:entezar", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_hesabdari", + "label": "URL: admin_panel:hesabdari", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "concept", + "norm_label": "url: admin_panel:hesabdari", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_hesabdari_residnashone", + "label": "URL: admin_panel:hesabdari_residnashone", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "concept", + "norm_label": "url: admin_panel:hesabdari_residnashone", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_index", + "label": "URL: admin_panel:index", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "concept", + "norm_label": "url: admin_panel:index", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_p_logout", + "label": "URL: admin_panel:p_logout", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "concept", + "norm_label": "url: admin_panel:p_logout", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_rezayat", + "label": "URL: admin_panel:rezayat", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "concept", + "norm_label": "url: admin_panel:rezayat", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_stores", + "label": "URL: admin_panel:stores", + "_origin": "semantic", + "community": 7, + "community_name": "Admin Panel URLs", + "file_type": "concept", + "norm_label": "url: admin_panel:stores", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "admin_panel_templates_admin_panel_basestore", + "label": "admin_panel/templates/admin_panel/baseStore.html", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/basestore.html", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerfactorbackup", + "label": "admin_panel/templates/admin_panel/customerFactorBackup.html", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerfactorbackup.html", + "rationale": "Filename suggests this is a backup version.", + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "id": "concept_django_custom_tags", + "label": "Django Custom Tags: custom_tags", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "django custom tags: custom_tags", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_bedehi", + "label": "URL: admin_panel:bedehi", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "url: admin_panel:bedehi", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "concept_url_admin_panel_customers", + "label": "URL: admin_panel:customers", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "url: admin_panel:customers", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html", + "source_location": [ + 29, + 29 + ] + }, + { + "id": "concept_url_admin_panel_operations", + "label": "URL: admin_panel:operations", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "url: admin_panel:operations", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_productadd", + "label": "URL: admin_panel:productAdd", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "url: admin_panel:productadd", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_store", + "label": "URL: admin_panel:store", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "url: admin_panel:store", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_admin_panel_store_transfers", + "label": "URL: admin_panel:store_transfers", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "url: admin_panel:store_transfers", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "id": "concept_url_panel_customer_factor_del", + "label": "URL: /panel/customer/{id}/factor/{id}/del", + "_origin": "semantic", + "community": 7, + "community_name": "Customer Admin Templates", + "file_type": "concept", + "norm_label": "url: /panel/customer/{id}/factor/{id}/del", + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_index", + "label": "admin_panel/templates/admin_panel/index.html", + "_origin": "semantic", + "community": 72, + "community_name": "Admin Panel Index Page", + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/index.html", + "rationale": "This appears to be a static prototype version of a page, indicated by the lack of Django template tags and inheritance.", + "source_file": "admin_panel/templates/admin_panel/index.html" + }, + { + "id": "admin_panel_urls_newstore", + "label": "URL: newStore", + "_origin": "semantic", + "community": 87, + "community_name": "New Store URL", + "file_type": "concept", + "norm_label": "url: newstore" + }, + { + "id": "admin_panel_urls_processtransferaction", + "label": "URL: process_transfer_action", + "_origin": "semantic", + "community": 88, + "community_name": "Process Transfer URL", + "file_type": "concept", + "norm_label": "url: process_transfer_action" + }, + { + "id": "admin_panel_urls_rezayatedit", + "label": "URL: rezayatEdit", + "_origin": "semantic", + "community": 89, + "community_name": "Edit Satisfaction URL", + "file_type": "concept", + "norm_label": "url: rezayatedit" + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html", + "label": "customersBK.html", + "author": null, + "captured_at": null, + "community": 12, + "contributor": null, + "file_type": "code", + "norm_label": "customersbk.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_url_customernew", + "label": "admin_panel:customerNew URL", + "author": null, + "captured_at": null, + "community": 12, + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:customernew url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "source_url": null + }, + { + "id": "concept_datatables", + "label": "DataTables Library", + "author": null, + "captured_at": null, + "community": 12, + "contributor": null, + "file_type": "concept", + "norm_label": "datatables library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 322, + 327 + ], + "source_url": null + }, + { + "id": "concept_jquery", + "label": "jQuery", + "author": null, + "captured_at": null, + "community": 12, + "contributor": null, + "file_type": "concept", + "norm_label": "jquery", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 321, + 400 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "label": "hesabdariCheckPassFail.html", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "code", + "norm_label": "hesabdaricheckpassfail.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_data_customer", + "label": "Customer Data Object", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "concept", + "norm_label": "customer data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "source_url": null + }, + { + "id": "admin_panel_data_factor", + "label": "Factor Data Object", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "concept", + "norm_label": "factor data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 72, + 72 + ], + "source_url": null + }, + { + "id": "admin_panel_data_sarresid", + "label": "Sarresid Data Object", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "concept", + "norm_label": "sarresid data object", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 54, + 54 + ], + "source_url": null + }, + { + "id": "admin_panel_url_pardakhtnesiye", + "label": "admin_panel:pardakhtNesiye URL", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:pardakhtnesiye url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 111, + 111 + ], + "source_url": null + }, + { + "id": "admin_panel_url_passcheck", + "label": "/panel/passCheck/ URL", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "concept", + "norm_label": "/panel/passcheck/ url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 201, + 201 + ], + "source_url": null + }, + { + "id": "django_permission_viewreportmali", + "label": "admin_panel.ViewReportMali Permission", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel.viewreportmali permission", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 4, + 4 + ], + "source_url": null + }, + { + "id": "javascript_library_jquery", + "label": "jQuery JS Library", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "concept", + "norm_label": "jquery js library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 172, + 172 + ], + "source_url": null + }, + { + "id": "javascript_library_pdatepicker", + "label": "pDatepicker JS Library", + "author": null, + "captured_at": null, + "community": 18, + "contributor": null, + "file_type": "concept", + "norm_label": "pdatepicker js library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 180, + 180 + ], + "source_url": null + }, + { + "id": "copilot_chat", + "label": "Copilot Chat", + "author": null, + "captured_at": null, + "community": 21, + "contributor": null, + "file_type": "concept", + "norm_label": "copilot chat", + "rationale": "The user interface where the /graphify command is invoked.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_explain", + "label": "graphify explain", + "author": null, + "captured_at": null, + "community": 21, + "contributor": null, + "file_type": "concept", + "norm_label": "graphify explain", + "rationale": "A subcommand for getting a focused explanation of a concept.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_path", + "label": "graphify path", + "author": null, + "captured_at": null, + "community": 21, + "contributor": null, + "file_type": "concept", + "norm_label": "graphify path", + "rationale": "A subcommand for finding relationships between two entities.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify_query", + "label": "graphify query", + "author": null, + "captured_at": null, + "community": 21, + "contributor": null, + "file_type": "concept", + "norm_label": "graphify query", + "rationale": "A subcommand for asking general questions about the repository architecture.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_graph_json", + "label": "graphify-out/graph.json", + "author": null, + "captured_at": null, + "community": 21, + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/graph.json", + "rationale": "The primary data source for graphify commands.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_graph_report_md", + "label": "graphify-out/GRAPH_REPORT.md", + "author": null, + "captured_at": null, + "community": 21, + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/graph_report.md", + "rationale": "A document for broad architecture review.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "graphify-out_wiki_index_md", + "label": "graphify-out/wiki/index.md", + "author": null, + "captured_at": null, + "community": 21, + "contributor": null, + "file_type": "document", + "norm_label": "graphify-out/wiki/index.md", + "rationale": "A navigation aid for broad exploration.", + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_entezar_html", + "label": "admin_panel/entezar.html", + "author": null, + "captured_at": null, + "community": 29, + "contributor": null, + "file_type": "code", + "norm_label": "admin_panel/entezar.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_templatetags_custom_tags_tojalali", + "label": "toJalali filter", + "author": null, + "captured_at": null, + "community": 29, + "contributor": null, + "file_type": "code", + "norm_label": "tojalali filter", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 35, + 35 + ], + "source_url": null + }, + { + "id": "concept_customer_data", + "label": "Customer Data Structure", + "author": null, + "captured_at": null, + "community": 29, + "contributor": null, + "file_type": "concept", + "norm_label": "customer data structure", + "rationale": "The template iterates over a 'customers' collection and accesses attributes like id, name_family, last_bazdid_dt, phone1, phone2, and address, implying a consistent data structure for a customer.", + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 25, + 25 + ], + "source_url": null + }, + { + "id": "concept_kamadatepicker", + "label": "kamaDatepicker Library", + "author": null, + "captured_at": null, + "community": 29, + "contributor": null, + "file_type": "concept", + "norm_label": "kamadatepicker library", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 203, + 203 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html_createcs", + "label": "createCS click handler", + "author": null, + "captured_at": null, + "community": 31, + "contributor": null, + "file_type": "code", + "norm_label": "createcs click handler", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 328, + 344 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customersbk_html_openrow", + "label": "openRow click handler", + "author": null, + "captured_at": null, + "community": 31, + "contributor": null, + "file_type": "code", + "norm_label": "openrow click handler", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 358, + 383 + ], + "source_url": null + }, + { + "id": "concept_customer_modal_ui", + "label": "Customer Modals UI", + "author": null, + "captured_at": null, + "community": 31, + "contributor": null, + "file_type": "concept", + "norm_label": "customer modals ui", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 202, + 319 + ], + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_customernewbackup_html", + "label": "customerNewBackup.html", + "author": null, + "captured_at": null, + "community": 4, + "contributor": null, + "file_type": "code", + "norm_label": "customernewbackup.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_urls_newfactor", + "label": "admin_panel:newFactor URL", + "author": null, + "captured_at": null, + "community": 4, + "contributor": null, + "file_type": "concept", + "norm_label": "admin_panel:newfactor url", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_category", + "label": "Category Data", + "author": null, + "captured_at": null, + "community": 4, + "contributor": null, + "file_type": "concept", + "norm_label": "category data", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_client_side_form_logic", + "label": "Client-side Form Logic", + "author": null, + "captured_at": null, + "community": 4, + "contributor": null, + "file_type": "concept", + "norm_label": "client-side form logic", + "rationale": "The template contains numerous elements with specific IDs (e.g., 'listPrds', 'btnAdd09', 'submitFactor', 'prdsList') and a complex, dynamic table structure, which strongly implies that JavaScript is used to manage user interactions, assemble form data, and trigger submission.", + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "concept_customer", + "label": "Customer Data", + "author": null, + "captured_at": null, + "community": 4, + "contributor": null, + "file_type": "concept", + "norm_label": "customer data", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_concepts_csrf_token", + "label": "CSRF Token", + "author": null, + "captured_at": null, + "community": 4, + "contributor": null, + "file_type": "concept", + "norm_label": "csrf token", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_template_tags_custom_tags", + "label": "custom_tags", + "author": null, + "captured_at": null, + "community": 4, + "contributor": null, + "file_type": "concept", + "norm_label": "custom_tags", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "django_template_tags_static", + "label": "static", + "author": null, + "captured_at": null, + "community": 4, + "contributor": null, + "file_type": "concept", + "norm_label": "static", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "source_url": null + }, + { + "id": "admin_panel_templates_admin_panel_base_html", + "label": "base.html", + "author": null, + "captured_at": null, + "community": 61, + "contributor": null, + "file_type": "code", + "norm_label": "base.html", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 1, + 1 + ], + "source_url": null + }, + { + "id": "admin_panel_templatetags_custom_tags_tocurrency", + "label": "toCurrency", + "author": null, + "captured_at": null, + "community": 85, + "contributor": null, + "file_type": "code", + "norm_label": "tocurrency", + "rationale": null, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 14, + 14 + ], + "source_url": null + }, + { + "id": "django_db_models", + "label": "django_db_models", + "community": 0, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth", + "label": "django_contrib_auth", + "community": 0, + "community_name": "Inventory and Product Models", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth_models", + "label": "django_contrib_auth_models", + "community": 0, + "community_name": "Inventory and Product Models", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth_models", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_exceptions", + "label": "django_core_exceptions", + "community": 0, + "community_name": "Inventory and Product Models", + "external": true, + "file_type": "concept", + "norm_label": "django_core_exceptions", + "source_file": "", + "type": "external" + }, + { + "id": "django_dispatch", + "label": "django_dispatch", + "community": 0, + "community_name": "Inventory and Product Models", + "external": true, + "file_type": "concept", + "norm_label": "django_dispatch", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils_translation", + "label": "django_utils_translation", + "community": 0, + "community_name": "Inventory and Product Models", + "external": true, + "file_type": "concept", + "norm_label": "django_utils_translation", + "source_file": "", + "type": "external" + }, + { + "id": "typing", + "label": "typing", + "community": 0, + "community_name": "Inventory and Product Models", + "external": true, + "file_type": "concept", + "norm_label": "typing", + "source_file": "", + "type": "external" + }, + { + "id": "csv", + "label": "csv", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "csv", + "source_file": "", + "type": "external" + }, + { + "id": "datetime", + "label": "datetime", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "datetime", + "source_file": "", + "type": "external" + }, + { + "id": "django", + "label": "django", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "django", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_asgi", + "label": "django_core_asgi", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "django_core_asgi", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_wsgi", + "label": "django_core_wsgi", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "django_core_wsgi", + "source_file": "", + "type": "external" + }, + { + "id": "django_db_models_functions", + "label": "django_db_models_functions", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models_functions", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils", + "label": "django_utils", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "django_utils", + "source_file": "", + "type": "external" + }, + { + "id": "os", + "label": "os", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "os", + "source_file": "", + "type": "external" + }, + { + "id": "persiantools_jdatetime", + "label": "persiantools_jdatetime", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "persiantools_jdatetime", + "source_file": "", + "type": "external" + }, + { + "id": "requests", + "label": "requests", + "community": 1, + "community_name": "Daily Reporting Command", + "external": true, + "file_type": "concept", + "norm_label": "requests", + "source_file": "", + "type": "external" + }, + { + "id": "admin_panel_templates_admin_panel_login", + "label": "admin_panel/login.html", + "community": 10, + "file_type": "code", + "norm_label": "admin_panel/login.html", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "admin_panel_templates_admin_panel_storebk1", + "label": "admin_panel/storeBK1.html", + "community": 10, + "file_type": "code", + "norm_label": "admin_panel/storebk1.html", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "javascript_kamadatepicker", + "label": "kamaDatepicker", + "community": 10, + "file_type": "code", + "norm_label": "kamadatepicker", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "static_admin_panel_bulma-rtl_min_css", + "label": "admin_panel/bulma-rtl.min.css", + "community": 10, + "file_type": "code", + "norm_label": "admin_panel/bulma-rtl.min.css", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_csrf_token", + "label": "Django CSRF Token", + "community": 10, + "file_type": "concept", + "norm_label": "django csrf token", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_custom_tags", + "label": "Django Custom Tags", + "community": 10, + "file_type": "concept", + "norm_label": "django custom tags", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_static_files", + "label": "Django Static Files", + "community": 10, + "file_type": "concept", + "norm_label": "django static files", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_url_admin_panel_newstore", + "label": "Django URL: admin_panel:newStore", + "community": 10, + "file_type": "concept", + "norm_label": "django url: admin_panel:newstore", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_url_admin_panel_operations", + "label": "Django URL: admin_panel:operations", + "community": 10, + "file_type": "concept", + "norm_label": "django url: admin_panel:operations", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "django_url_admin_panel_p_login", + "label": "Django URL: admin_panel:p_login", + "community": 10, + "file_type": "concept", + "norm_label": "django url: admin_panel:p_login", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "django_url_admin_panel_store", + "label": "Django URL: admin_panel:store", + "community": 10, + "file_type": "concept", + "norm_label": "django url: admin_panel:store", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "form_field_password", + "label": "Form Field: password", + "community": 10, + "file_type": "concept", + "norm_label": "form field: password", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "form_field_storename", + "label": "Form Field: storeName", + "community": 10, + "file_type": "concept", + "norm_label": "form field: storename", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "form_field_username", + "label": "Form Field: username", + "community": 10, + "file_type": "concept", + "norm_label": "form field: username", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "product_property_mojodi", + "label": "Product Property: mojodi", + "community": 10, + "file_type": "concept", + "norm_label": "product property: mojodi", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "product_property_product_name", + "label": "Product Property: product_name", + "community": 10, + "file_type": "concept", + "norm_label": "product property: product_name", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "template_variable_message", + "label": "Template Variable: message", + "community": 10, + "file_type": "concept", + "norm_label": "template variable: message", + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "id": "template_variable_productsum", + "label": "Template Variable: productSum", + "community": 10, + "file_type": "concept", + "norm_label": "template variable: productsum", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "template_variable_s_id", + "label": "Template Variable: s_id", + "community": 10, + "file_type": "concept", + "norm_label": "template variable: s_id", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "admin_panel_templates_admin_panel_bedehbk", + "label": "admin_panel/templates/admin_panel/bedehiBK.html", + "community": 12, + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/bedehibk.html", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeraction", + "label": "admin_panel/templates/admin_panel/customerAction.html", + "community": 12, + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customeraction.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeractioninc_html", + "label": "admin_panel/templates/admin_panel/customerActionInc.html", + "community": 12, + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customeractioninc.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_urls_customernew", + "label": "admin_panel:customerNew", + "community": 12, + "file_type": "concept", + "norm_label": "admin_panel:customernew", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "admin_panel_urls_customernewaction", + "label": "admin_panel:customerNewAction URL", + "community": 12, + "file_type": "concept", + "norm_label": "admin_panel:customernewaction url", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "concept_action_model", + "label": "Action Data Model", + "community": 12, + "file_type": "concept", + "norm_label": "action data model", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "django_template_tag_static", + "label": "Django Static Tag", + "community": 12, + "file_type": "concept", + "norm_label": "django static tag" + }, + { + "id": "django_template_tag_url", + "label": "Django 'url' template tag", + "community": 12, + "file_type": "concept", + "norm_label": "django 'url' template tag", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_bulma", + "label": "Bulma CSS", + "community": 12, + "file_type": "concept", + "norm_label": "bulma css", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_datatables", + "label": "DataTables.js", + "community": 12, + "file_type": "concept", + "norm_label": "datatables.js", + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "id": "library_pdatepicker", + "label": "pDatepicker.js", + "community": 12, + "file_type": "concept", + "norm_label": "pdatepicker.js", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "label": "hesabdariCheckPass.html", + "community": 14, + "file_type": "code", + "norm_label": "hesabdaricheckpass.html", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "django_templatetags_tojalali", + "label": "toJalali", + "community": 14, + "file_type": "code", + "norm_label": "tojalali", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 60 + }, + { + "id": "admin_panel_urls_passcheck", + "label": "/panel/passCheck/", + "community": 14, + "file_type": "concept", + "norm_label": "/panel/passcheck/", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "concept_all_sarresid", + "label": "all_sarresid", + "community": 14, + "file_type": "concept", + "norm_label": "all_sarresid", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "django_context_variable_mandehesabkp", + "label": "mandehesabKP", + "community": 14, + "file_type": "concept", + "norm_label": "mandehesabkp", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 18 + }, + { + "id": "django_urls_admin_panel_bedehi", + "label": "admin_panel:bedehi", + "community": 14, + "file_type": "concept", + "norm_label": "admin_panel:bedehi", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 10 + }, + { + "id": "django_urls_admin_panel_bedehikhadamat", + "label": "admin_panel:bedehiKhadamat", + "community": 14, + "file_type": "concept", + "norm_label": "admin_panel:bedehikhadamat", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 11 + }, + { + "id": "django_urls_admin_panel_bedehinasb", + "label": "admin_panel:bedehiNasb", + "community": 14, + "file_type": "concept", + "norm_label": "admin_panel:bedehinasb", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 12 + }, + { + "id": "django_urls_admin_panel_customer", + "label": "admin_panel:customer", + "community": 14, + "file_type": "concept", + "norm_label": "admin_panel:customer", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "id": "javascript_jquery", + "label": "jQuery", + "community": 14, + "file_type": "concept", + "norm_label": "jquery", + "source_file": null + }, + { + "id": "admin_panel_templates_admin_panel_bedehi_html", + "label": "admin_panel/templates/admin_panel/bedehi.html", + "community": 14, + "file_type": "document", + "norm_label": "admin_panel/templates/admin_panel/bedehi.html", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "django_contrib", + "label": "django_contrib", + "community": 15, + "community_name": "Django Admin Configuration", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib", + "source_file": "", + "type": "external" + }, + { + "id": "admin_panel_templates_admin_panel_customerbase", + "label": "admin_panel/templates/admin_panel/customerBase.html", + "community": 17, + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerbase.html", + "source_file": "admin_panel/templates/admin_panel/customerBase.html" + }, + { + "id": "admin_panel_views_customer_delete", + "label": "/panel/customer/{id}/del", + "community": 17, + "file_type": "code", + "norm_label": "/panel/customer/{id}/del", + "source_file": null + }, + { + "id": "django_contrib_auth_models_permission", + "label": "Django Permission", + "community": 17, + "file_type": "concept", + "norm_label": "django permission", + "source_file": null + }, + { + "id": "django_templatetags_static", + "label": "Django Static Files", + "community": 17, + "file_type": "concept", + "norm_label": "django static files", + "source_file": null + }, + { + "id": "javascript_pdatepicker", + "label": "pDatepicker", + "community": 17, + "file_type": "concept", + "norm_label": "pdatepicker", + "source_file": null + }, + { + "id": "boto3", + "label": "boto3", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "boto3", + "source_file": "", + "type": "external" + }, + { + "id": "botocore_config", + "label": "botocore_config", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "botocore_config", + "source_file": "", + "type": "external" + }, + { + "id": "botocore_exceptions", + "label": "botocore_exceptions", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "botocore_exceptions", + "source_file": "", + "type": "external" + }, + { + "id": "contextlib", + "label": "contextlib", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "contextlib", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_management_base", + "label": "django_core_management_base", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "django_core_management_base", + "source_file": "", + "type": "external" + }, + { + "id": "fcntl", + "label": "fcntl", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "fcntl", + "source_file": "", + "type": "external" + }, + { + "id": "logging", + "label": "logging", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "logging", + "source_file": "", + "type": "external" + }, + { + "id": "pathlib", + "label": "pathlib", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "pathlib", + "source_file": "", + "type": "external" + }, + { + "id": "shutil", + "label": "shutil", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "shutil", + "source_file": "", + "type": "external" + }, + { + "id": "signal", + "label": "signal", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "signal", + "source_file": "", + "type": "external" + }, + { + "id": "sqlite3", + "label": "sqlite3", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "sqlite3", + "source_file": "", + "type": "external" + }, + { + "id": "time", + "label": "time", + "community": 2, + "community_name": "Database Backup Command", + "external": true, + "file_type": "concept", + "norm_label": "time", + "source_file": "", + "type": "external" + }, + { + "id": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "label": "hesabdariResidNashode.html", + "community": 22, + "file_type": "code", + "norm_label": "hesabdariresidnashode.html", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "lib_jquery", + "label": "jQuery", + "community": 22, + "file_type": "code", + "norm_label": "jquery", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "verification": "unverified" + }, + { + "id": "lib_pdatepicker", + "label": "pDatepicker JS Library", + "community": 22, + "file_type": "code", + "norm_label": "pdatepicker js library", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags", + "label": "custom_tags", + "community": 22, + "file_type": "code", + "norm_label": "custom_tags", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags_tocurrency", + "label": "toCurrency", + "community": 22, + "file_type": "code", + "norm_label": "tocurrency", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "templatetags_custom_tags_tojalali", + "label": "toJalali", + "community": 22, + "file_type": "code", + "norm_label": "tojalali", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "admin_panel_urls_pardakhtnesiye", + "label": "admin_panel:pardakhtNesiye", + "community": 22, + "file_type": "concept", + "norm_label": "admin_panel:pardakhtnesiye", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "django_permissions_admin_panel_viewreportmali", + "label": "admin_panel.ViewReportMali", + "community": 22, + "file_type": "concept", + "norm_label": "admin_panel.viewreportmali", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 4 + }, + { + "id": "django_apps", + "label": "django_apps", + "community": 24, + "community_name": "Django App Configurations", + "external": true, + "file_type": "concept", + "norm_label": "django_apps", + "source_file": "", + "type": "external" + }, + { + "id": "django_utils_timezone", + "label": "django_utils_timezone", + "community": 25, + "community_name": "Timezone-related Migrations", + "external": true, + "file_type": "concept", + "norm_label": "django_utils_timezone", + "source_file": "", + "type": "external" + }, + { + "id": "sys", + "label": "sys", + "community": 26, + "community_name": "Application Entrypoint Scripts", + "external": true, + "file_type": "concept", + "norm_label": "sys", + "source_file": "", + "type": "external" + }, + { + "id": "django_http", + "label": "django_http", + "community": 27, + "community_name": "Core Admin App", + "external": true, + "file_type": "concept", + "norm_label": "django_http", + "source_file": "", + "type": "external" + }, + { + "id": "django_shortcuts", + "label": "django_shortcuts", + "community": 27, + "community_name": "Core Admin App", + "external": true, + "file_type": "concept", + "norm_label": "django_shortcuts", + "source_file": "", + "type": "external" + }, + { + "id": "django_conf_urls_static", + "label": "django_conf_urls_static", + "community": 28, + "community_name": "Project URL Configuration", + "external": true, + "file_type": "concept", + "norm_label": "django_conf_urls_static", + "source_file": "", + "type": "external" + }, + { + "id": "django_urls", + "label": "django_urls", + "community": 28, + "community_name": "Project URL Configuration", + "external": true, + "file_type": "concept", + "norm_label": "django_urls", + "source_file": "", + "type": "external" + }, + { + "id": "django_templatetags_custom_tags", + "label": "custom_tags", + "community": 29, + "file_type": "code", + "norm_label": "custom_tags", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 2 + }, + { + "id": "django_db", + "label": "django_db", + "community": 3, + "community_name": "Database Schema Migrations", + "external": true, + "file_type": "concept", + "norm_label": "django_db", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_validators", + "label": "django_core_validators", + "community": 30, + "community_name": "Data Validation Migration", + "external": true, + "file_type": "concept", + "norm_label": "django_core_validators", + "source_file": "", + "type": "external" + }, + { + "id": "django_test", + "label": "django_test", + "community": 32, + "community_name": "Application Tests", + "external": true, + "file_type": "concept", + "norm_label": "django_test", + "source_file": "", + "type": "external" + }, + { + "id": "concept_articl_model", + "label": "Articl Model", + "community": 33, + "file_type": "concept", + "norm_label": "articl model", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "concept_customer_model", + "label": "Customer Model", + "community": 33, + "file_type": "concept", + "norm_label": "customer model", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "django_context_variable_articls", + "label": "articls", + "community": 33, + "file_type": "concept", + "norm_label": "articls", + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html", + "label": "Customer ID Backup/New Factor Template", + "community": 4, + "file_type": "code", + "norm_label": "customer id backup/new factor template", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_all_products", + "label": "all_products (JS variable)", + "community": 4, + "file_type": "code", + "norm_label": "all_products (js variable)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "label": "buildOrderList (JS function)", + "community": 4, + "file_type": "code", + "norm_label": "buildorderlist (js function)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "label": "orderList (JS variable)", + "community": 4, + "file_type": "code", + "norm_label": "orderlist (js variable)", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "label": "customerIDFactorBackup.html", + "community": 4, + "file_type": "code", + "norm_label": "customeridfactorbackup.html", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "label": "Client-side script in customerIDFactorBackup.html", + "community": 4, + "file_type": "code", + "norm_label": "client-side script in customeridfactorbackup.html", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "django_contrib_staticfiles_templatetags_static", + "label": "django static tag library", + "community": 4, + "file_type": "code", + "norm_label": "django static tag library", + "source_file": null + }, + { + "id": "admin_panel_urls_customeredit", + "label": "URL: admin_panel:customerEdit", + "community": 4, + "file_type": "concept", + "norm_label": "url: admin_panel:customeredit", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "api_endpoint_panel_customer_del", + "label": "/panel/customer/{id}/del API Endpoint", + "community": 4, + "file_type": "concept", + "norm_label": "/panel/customer/{id}/del api endpoint" + }, + { + "id": "api_endpoint_panel_productmojodi", + "label": "/panel/productMojodi/ API Endpoint", + "community": 4, + "file_type": "concept", + "norm_label": "/panel/productmojodi/ api endpoint" + }, + { + "id": "concept_factor", + "label": "Factor Data Model", + "community": 4, + "file_type": "concept", + "norm_label": "factor data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "concept_permission", + "label": "Django Permissions", + "community": 4, + "file_type": "concept", + "norm_label": "django permissions" + }, + { + "id": "concept_product", + "label": "Product Data Model", + "community": 4, + "file_type": "concept", + "norm_label": "product data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "concept_productcategory", + "label": "Product Category Data Model", + "community": 4, + "file_type": "concept", + "norm_label": "product category data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "concept_user", + "label": "User Data Model", + "community": 4, + "file_type": "concept", + "norm_label": "user data model", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "django_template_filter_tojalali", + "label": "toJalali Template Filter", + "community": 4, + "file_type": "concept", + "norm_label": "tojalali template filter" + }, + { + "id": "django_template_tag_custom_tags", + "label": "Django Custom Tags", + "community": 4, + "file_type": "concept", + "norm_label": "django custom tags" + }, + { + "id": "django_url_admin_panel_customeredit", + "label": "admin_panel:customerEdit URL", + "community": 4, + "file_type": "concept", + "norm_label": "admin_panel:customeredit url" + }, + { + "id": "django_url_admin_panel_customerfactors", + "label": "admin_panel:customerFactors URL", + "community": 4, + "file_type": "concept", + "norm_label": "admin_panel:customerfactors url" + }, + { + "id": "django_url_admin_panel_newfactor", + "label": "admin_panel:newFactor URL", + "community": 4, + "file_type": "concept", + "norm_label": "admin_panel:newfactor url" + }, + { + "id": "django_url_admin_panel_productsjson", + "label": "admin_panel:productsJson URL", + "community": 4, + "file_type": "concept", + "norm_label": "admin_panel:productsjson url" + }, + { + "id": "js_library_pdatepicker", + "label": "pDatepicker JS Library", + "community": 4, + "file_type": "concept", + "norm_label": "pdatepicker js library" + }, + { + "id": "panel_urls_productmojodi", + "label": "URL: /panel/productMojodi/", + "community": 4, + "file_type": "concept", + "norm_label": "url: /panel/productmojodi/", + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "id": "asgiref_sync", + "label": "asgiref_sync", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "asgiref_sync", + "source_file": "", + "type": "external" + }, + { + "id": "asyncio", + "label": "asyncio", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "asyncio", + "source_file": "", + "type": "external" + }, + { + "id": "base64", + "label": "base64", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "base64", + "source_file": "", + "type": "external" + }, + { + "id": "cv2", + "label": "cv2", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "cv2", + "source_file": "", + "type": "external" + }, + { + "id": "ddddocr", + "label": "ddddocr", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "ddddocr", + "source_file": "", + "type": "external" + }, + { + "id": "django_contrib_auth_decorators", + "label": "django_contrib_auth_decorators", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "django_contrib_auth_decorators", + "source_file": "", + "type": "external" + }, + { + "id": "django_core_paginator", + "label": "django_core_paginator", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "django_core_paginator", + "source_file": "", + "type": "external" + }, + { + "id": "django_urls_base", + "label": "django_urls_base", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "django_urls_base", + "source_file": "", + "type": "external" + }, + { + "id": "django_views_decorators_csrf", + "label": "django_views_decorators_csrf", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "django_views_decorators_csrf", + "source_file": "", + "type": "external" + }, + { + "id": "django_views_decorators_http", + "label": "django_views_decorators_http", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "django_views_decorators_http", + "source_file": "", + "type": "external" + }, + { + "id": "json", + "label": "json", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "json", + "source_file": "", + "type": "external" + }, + { + "id": "numpy", + "label": "numpy", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "numpy", + "source_file": "", + "type": "external" + }, + { + "id": "persiantools", + "label": "persiantools", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "persiantools", + "source_file": "", + "type": "external" + }, + { + "id": "playwright_async_api", + "label": "playwright_async_api", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "playwright_async_api", + "source_file": "", + "type": "external" + }, + { + "id": "re", + "label": "re", + "community": 5, + "community_name": "User Action Views", + "external": true, + "file_type": "concept", + "norm_label": "re", + "source_file": "", + "type": "external" + }, + { + "id": "admin_panel_customer_action_inc", + "label": "Customer Action Include", + "community": 50, + "file_type": "code", + "norm_label": "customer action include", + "rationale": "Reusable component for displaying and filtering customer actions.", + "source_file": "admin_panel/templates/admin_panel/customerActionInc.html" + }, + { + "id": "admin_panel_customer_base_new", + "label": "New Customer Base Template", + "community": 51, + "file_type": "code", + "norm_label": "new customer base template", + "rationale": "Base template for customer-specific views with dynamic phone management.", + "source_file": "admin_panel/templates/admin_panel/customerBaseNew.html" + }, + { + "id": "admin_panel_customer_customernazarinc", + "label": "Customer Feedback Partial", + "community": 52, + "file_type": "code", + "norm_label": "customer feedback partial", + "rationale": "Reusable component for displaying and editing customer actions, results, and satisfaction grades.", + "source_file": "admin_panel/templates/admin_panel/customer/customerNazarInc.html" + }, + { + "id": "admin_panel_customer_factor", + "label": "Customer Factor Detail", + "community": 53, + "file_type": "code", + "norm_label": "customer factor detail", + "rationale": "Displays specific invoice details and handles cancellation logic.", + "source_file": "admin_panel/templates/admin_panel/customerFactor.html" + }, + { + "id": "admin_panel_customer_hesabdari", + "label": "Customer Accounting Template", + "community": 54, + "file_type": "code", + "norm_label": "customer accounting template", + "rationale": "Manages customer financial transactions and balance.", + "source_file": "admin_panel/templates/admin_panel/customerHesabDari.html" + }, + { + "id": "admin_panel_customer_id_factor", + "label": "Customer Factor List", + "community": 55, + "file_type": "code", + "norm_label": "customer factor list", + "rationale": "Lists and filters invoices for a specific customer.", + "source_file": "admin_panel/templates/admin_panel/customerIDFactor.html" + }, + { + "id": "admin_panel_customer_nazar", + "label": "Customer Feedback Page", + "community": 56, + "file_type": "code", + "norm_label": "customer feedback page", + "rationale": "Page wrapper for the customer feedback/action partial.", + "source_file": "admin_panel/templates/admin_panel/customer/nazar.html" + }, + { + "id": "admin_panel_templates_admin_panel_actionlist", + "label": "Action List Template", + "community": 60, + "file_type": "code", + "norm_label": "action list template", + "rationale": "Displays a list of tasks/actions for users.", + "source_file": "admin_panel/templates/admin_panel/ActionList.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerNew", + "label": "Customer New Factor", + "community": 62, + "file_type": "code", + "norm_label": "customer new factor", + "rationale": "Template for creating new customer factors/invoices with product selection and payment types.", + "source_file": "admin_panel/templates/admin_panel/customerNew.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerNew2", + "label": "Customer New Factor V2", + "community": 63, + "file_type": "code", + "norm_label": "customer new factor v2", + "rationale": "Updated version of factor creation including discount and previous balance fields.", + "source_file": "admin_panel/templates/admin_panel/customerNew2.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerRezayat", + "label": "Customer Satisfaction List", + "community": 64, + "file_type": "code", + "norm_label": "customer satisfaction list", + "source_file": "admin_panel/templates/admin_panel/customerRezayat.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerRezayatinc", + "label": "Customer Satisfaction Partial", + "community": 65, + "file_type": "code", + "norm_label": "customer satisfaction partial", + "rationale": "Reusable component for displaying and editing customer satisfaction/action results.", + "source_file": "admin_panel/templates/admin_panel/customerRezayatinc.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerSarresid", + "label": "Customer Check/Debt Management", + "community": 66, + "file_type": "code", + "norm_label": "customer check/debt management", + "rationale": "Comprehensive interface for managing checks, promissory notes, and Sayyad system inquiries.", + "source_file": "admin_panel/templates/admin_panel/customerSarresid.html" + }, + { + "id": "admin_panel_templates_admin_panel_customerbasenew_html", + "label": "admin_panel/templates/admin_panel/customerBaseNew.html", + "community": 67, + "file_type": "code", + "norm_label": "admin_panel/templates/admin_panel/customerbasenew.html", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "admin_panel_templates_admin_panel_customers", + "label": "Customer List", + "community": 68, + "file_type": "code", + "norm_label": "customer list", + "source_file": "admin_panel/templates/admin_panel/customers.html" + }, + { + "id": "admin_panel_templates_admin_panel_base", + "label": "admin_panel/base.html", + "community": 7, + "file_type": "code", + "norm_label": "admin_panel/base.html", + "rationale": "Main layout and navigation for the admin panel.", + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "id": "admin_panel_templates_admin_panel_financial_dashboard", + "label": "Financial Dashboard", + "community": 70, + "file_type": "code", + "norm_label": "financial dashboard", + "rationale": "High-level management view for auditing debts, sales trends, and inventory leaks.", + "source_file": "admin_panel/templates/admin_panel/financial_dashboard.html" + }, + { + "id": "admin_panel_templates_admin_panel_hesabdari", + "label": "Accounting Main View", + "community": 71, + "file_type": "code", + "norm_label": "accounting main view", + "source_file": "admin_panel/templates/admin_panel/hesabdari.html" + }, + { + "id": "admin_panel_templates_admin_panel_newOperation", + "label": "New Inventory Operation", + "community": 73, + "file_type": "code", + "norm_label": "new inventory operation", + "source_file": "admin_panel/templates/admin_panel/newOperation.html" + }, + { + "id": "admin_panel_templates_admin_panel_operations", + "label": "Inventory Operations List", + "community": 74, + "file_type": "code", + "norm_label": "inventory operations list", + "source_file": "admin_panel/templates/admin_panel/operations.html" + }, + { + "id": "admin_panel_templates_admin_panel_operationsbk", + "label": "Operations Backup Template", + "community": 75, + "file_type": "code", + "norm_label": "operations backup template", + "rationale": "Template for viewing store operation logs (in/out) and creating new stores.", + "source_file": "admin_panel/templates/admin_panel/operationsBK.html" + }, + { + "id": "admin_panel_templates_admin_panel_report", + "label": "Financial Report Template", + "community": 76, + "file_type": "code", + "norm_label": "financial report template", + "rationale": "Generates financial reports with filters for payment type, user, and date range.", + "source_file": "admin_panel/templates/admin_panel/report.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_debtors_no_vosol", + "label": "Debt Collection Dashboard", + "community": 77, + "file_type": "code", + "norm_label": "debt collection dashboard", + "rationale": "Intelligent dashboard for tracking abandoned debt collections and overdue amounts.", + "source_file": "admin_panel/templates/admin_panel/report_debtors_no_vosol.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_inventory_movements", + "label": "Inventory Movement Report", + "community": 78, + "file_type": "code", + "norm_label": "inventory movement report", + "rationale": "Detailed report on stock ins/outs with movement type classification (Sale, Warranty, etc.).", + "source_file": "admin_panel/templates/admin_panel/report_inventory_movements.html" + }, + { + "id": "admin_panel_templates_admin_panel_report_rezayat", + "label": "Customer Satisfaction Dashboard", + "community": 79, + "file_type": "code", + "norm_label": "customer satisfaction dashboard", + "rationale": "Dashboard for monitoring customer feedback, average grades, and follow-up for unhappy customers.", + "source_file": "admin_panel/templates/admin_panel/report_rezayat.html" + }, + { + "id": "django_db_models_deletion", + "label": "django_db_models_deletion", + "community": 8, + "community_name": "Initial Database Migrations", + "external": true, + "file_type": "concept", + "norm_label": "django_db_models_deletion", + "source_file": "", + "type": "external" + }, + { + "id": "admin_panel_templates_admin_panel_reportchecknesiye", + "label": "Check and Credit Report Template", + "community": 80, + "file_type": "code", + "norm_label": "check and credit report template", + "rationale": "Specialized report for tracking checks and credit (nesiye) maturity dates.", + "source_file": "admin_panel/templates/admin_panel/reportCheckNesiye.html" + }, + { + "id": "admin_panel_templates_admin_panel_rezayat", + "label": "Satisfaction List Template", + "community": 81, + "file_type": "code", + "norm_label": "satisfaction list template", + "rationale": "Legacy or list-view template for customer satisfaction records.", + "source_file": "admin_panel/templates/admin_panel/rezayat.html", + "verification": "unverified" + }, + { + "id": "admin_panel_templates_admin_panel_store", + "label": "Store Inventory Template", + "community": 82, + "file_type": "code", + "norm_label": "store inventory template", + "rationale": "Main interface for viewing physical stock, reserved items, and editing product details.", + "source_file": "admin_panel/templates/admin_panel/store.html" + }, + { + "id": "admin_panel_templates_admin_panel_store_transfers", + "label": "Store Transfers Template", + "community": 83, + "file_type": "code", + "norm_label": "store transfers template", + "rationale": "Manages inter-store inventory transfers, including approval, rejection, and cancellation flows.", + "source_file": "admin_panel/templates/admin_panel/store_transfers.html" + }, + { + "id": "admin_panel_templates_admin_panel_stores", + "label": "Stores List Template", + "community": 84, + "file_type": "code", + "norm_label": "stores list template", + "rationale": "High-level list of all available warehouses/stores.", + "source_file": "admin_panel/templates/admin_panel/stores.html" + }, + { + "id": "django_conf", + "label": "django_conf", + "community": 9, + "community_name": "User Relation Migrations", + "external": true, + "file_type": "concept", + "norm_label": "django_conf", + "source_file": "", + "type": "external" + }, + { + "id": "requirements2_txt", + "label": "Extended Requirements File", + "community": 91, + "file_type": "code", + "norm_label": "extended requirements file", + "source_file": "requirements2.txt" + }, + { + "id": "requirements_txt", + "label": "Requirements File", + "community": 92, + "file_type": "code", + "norm_label": "requirements file", + "source_file": "requirements.txt", + "verification": "unverified" + } + ], + "links": [ + { + "source": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_handle", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command_handle", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L155", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L51", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_check_target_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_check_source_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L67", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_services_get_product_current_stock", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "admin_panel_services_check_target_store_permission", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/services.py", + "source_location": "L171", + "weight": 1.0 + }, + { + "source": "admin_panel_views_addsarresid", + "target": "admin_panel_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L2540", + "weight": 1.0 + }, + { + "source": "admin_panel_views_addsarresid", + "target": "admin_panel_models_sarresid", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L2554", + "weight": 1.0 + }, + { + "source": "admin_panel_views_api_check_sabt_inquiry", + "target": "admin_panel_views_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L2881", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerfactors", + "target": "admin_panel_views_parse_jalali_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L896", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerhesabdariadd", + "target": "admin_panel_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L2082", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customersadd", + "target": "admin_panel_models_customer", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1009", + "weight": 1.0 + }, + { + "source": "admin_panel_views_inventory_movements_report", + "target": "admin_panel_views_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L339", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_panel_models_factor", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1586", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_panel_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1610", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_panel_models_factoriteam", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1644", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "admin_panel_views_parse_jalali_date", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1704", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "admin_panel_views_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1713", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "admin_panel_views_parse_timestamp", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1775", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "admin_panel_models_factoriteam", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1797", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "admin_panel_views_inventoryexception", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1809", + "weight": 1.0 + }, + { + "source": "admin_panel_views_operation", + "target": "admin_panel_views_safe_int", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1434", + "weight": 1.0 + }, + { + "source": "admin_panel_views_operation", + "target": "admin_panel_services_create_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1458", + "weight": 1.0 + }, + { + "source": "admin_panel_views_pardakhtnesiye", + "target": "admin_panel_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L2622", + "weight": 1.0 + }, + { + "source": "admin_panel_views_passcheck", + "target": "admin_panel_models_article", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L2418", + "weight": 1.0 + }, + { + "source": "admin_panel_views_process_transfer_action", + "target": "admin_panel_services_approve_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1334", + "weight": 1.0 + }, + { + "source": "admin_panel_views_process_transfer_action", + "target": "admin_panel_services_reject_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1342", + "weight": 1.0 + }, + { + "source": "admin_panel_views_process_transfer_action", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1346", + "weight": 1.0 + }, + { + "source": "admin_panel_views_run_cbi_sayad_inquiry_logic", + "target": "admin_panel_views_solve_base64_captcha", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L2738", + "weight": 1.0 + }, + { + "source": "admin_panel_views_run_cbi_sayad_inquiry_logic", + "target": "admin_panel_views_parse_cheque_result_html", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L2794", + "weight": 1.0 + }, + { + "source": "reconciliation_tool_run_audit", + "target": "csv", + "relation": "calls", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "call", + "source_file": "reconciliation_tool.py", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storeroomadmin", + "target": "register", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/admin.py", + "source_location": "L63", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storetransferrequestadmin", + "target": "register", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/admin.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L185", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "atomic", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/services.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p_remove_query_param", + "target": "filter", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actionlist", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2183", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actionlistall", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2240", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actionlisttoday", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2247", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actionlistuser", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2190", + "weight": 1.0 + }, + { + "source": "admin_panel_views_actionlistusertoday", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2259", + "weight": 1.0 + }, + { + "source": "admin_panel_views_addsarresid", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2488", + "weight": 1.0 + }, + { + "source": "admin_panel_views_addsarresid", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2489", + "weight": 1.0 + }, + { + "source": "admin_panel_views_api_check_sabt_inquiry", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2872", + "weight": 1.0 + }, + { + "source": "admin_panel_views_api_check_sabt_inquiry", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2873", + "weight": 1.0 + }, + { + "source": "admin_panel_views_api_check_status_inquiry", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2849", + "weight": 1.0 + }, + { + "source": "admin_panel_views_api_check_status_inquiry", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2850", + "weight": 1.0 + }, + { + "source": "admin_panel_views_bedehi", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L591", + "weight": 1.0 + }, + { + "source": "admin_panel_views_bedehi", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L592", + "weight": 1.0 + }, + { + "source": "admin_panel_views_bedehikhadamat", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L729", + "weight": 1.0 + }, + { + "source": "admin_panel_views_bedehikhadamat", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L730", + "weight": 1.0 + }, + { + "source": "admin_panel_views_bedehinasb", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L745", + "weight": 1.0 + }, + { + "source": "admin_panel_views_bedehinasb", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L746", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customer", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L815", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customeraction", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2098", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerdel", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1997", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerdel", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1998", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customeredit", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1028", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customereditaction", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2197", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerfactor", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L926", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerfactors", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L861", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerhesabdari", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2046", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerhesabdariadd", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2073", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customernazar", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2134", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customernew", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L826", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customernew2", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L838", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customernewaction", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2142", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "csrf_exempt", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L760", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customers", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L761", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customersadd", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L986", + "weight": 1.0 + }, + { + "source": "admin_panel_views_customerssearch", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L791", + "weight": 1.0 + }, + { + "source": "admin_panel_views_entezar", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1071", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factordel", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1889", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factordel", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1890", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factordel", + "target": "require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1891", + "weight": 1.0 + }, + { + "source": "admin_panel_views_financial_dashboard", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L392", + "weight": 1.0 + }, + { + "source": "admin_panel_views_financial_dashboard", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L393", + "weight": 1.0 + }, + { + "source": "admin_panel_views_hesabdari", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L610", + "weight": 1.0 + }, + { + "source": "admin_panel_views_hesabdari", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L611", + "weight": 1.0 + }, + { + "source": "admin_panel_views_hesabdari_checkpass", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L665", + "weight": 1.0 + }, + { + "source": "admin_panel_views_hesabdari_checkpass", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L666", + "weight": 1.0 + }, + { + "source": "admin_panel_views_hesabdari_checkpassfail", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L685", + "weight": 1.0 + }, + { + "source": "admin_panel_views_hesabdari_checkpassfail", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L686", + "weight": 1.0 + }, + { + "source": "admin_panel_views_hesabdari_residnashone", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L708", + "weight": 1.0 + }, + { + "source": "admin_panel_views_hesabdari_residnashone", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L709", + "weight": 1.0 + }, + { + "source": "admin_panel_views_inventory_movements_report", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L310", + "weight": 1.0 + }, + { + "source": "admin_panel_views_inventory_movements_report", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L311", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1544", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1689", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newoperation", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1268", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newoperation", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1269", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newstore", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1364", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newstore", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1365", + "weight": 1.0 + }, + { + "source": "admin_panel_views_operation", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1424", + "weight": 1.0 + }, + { + "source": "admin_panel_views_operation", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1425", + "weight": 1.0 + }, + { + "source": "admin_panel_views_operationproduct", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1249", + "weight": 1.0 + }, + { + "source": "admin_panel_views_operationproduct", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1250", + "weight": 1.0 + }, + { + "source": "admin_panel_views_operations", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1220", + "weight": 1.0 + }, + { + "source": "admin_panel_views_operations", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1221", + "weight": 1.0 + }, + { + "source": "admin_panel_views_pardakhtnesiye", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2579", + "weight": 1.0 + }, + { + "source": "admin_panel_views_pardakhtnesiye", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2580", + "weight": 1.0 + }, + { + "source": "admin_panel_views_passcheck", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2409", + "weight": 1.0 + }, + { + "source": "admin_panel_views_passcheck", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2410", + "weight": 1.0 + }, + { + "source": "admin_panel_views_process_transfer_action", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1316", + "weight": 1.0 + }, + { + "source": "admin_panel_views_process_transfer_action", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1317", + "weight": 1.0 + }, + { + "source": "admin_panel_views_process_transfer_action", + "target": "require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1318", + "weight": 1.0 + }, + { + "source": "admin_panel_views_productadd", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1374", + "weight": 1.0 + }, + { + "source": "admin_panel_views_productadd", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1375", + "weight": 1.0 + }, + { + "source": "admin_panel_views_productdel", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1418", + "weight": 1.0 + }, + { + "source": "admin_panel_views_productdel", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1419", + "weight": 1.0 + }, + { + "source": "admin_panel_views_productedit", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1400", + "weight": 1.0 + }, + { + "source": "admin_panel_views_productedit", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1401", + "weight": 1.0 + }, + { + "source": "admin_panel_views_productmojodi", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L960", + "weight": 1.0 + }, + { + "source": "admin_panel_views_report", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "admin_panel_views_report", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L101", + "weight": 1.0 + }, + { + "source": "admin_panel_views_report_debtors_no_vosol", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L200", + "weight": 1.0 + }, + { + "source": "admin_panel_views_report_debtors_no_vosol", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L201", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rezayat", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2292", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rezayat_dashboard", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2358", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rezayat_dashboard", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2359", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rezayatedit", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2324", + "weight": 1.0 + }, + { + "source": "admin_panel_views_sarresidh", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2062", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1147", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1148", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_transfers", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1278", + "weight": 1.0 + }, + { + "source": "admin_panel_views_store_transfers", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1279", + "weight": 1.0 + }, + { + "source": "admin_panel_views_stores", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1131", + "weight": 1.0 + }, + { + "source": "admin_panel_views_stores", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L1132", + "weight": 1.0 + }, + { + "source": "admin_panel_views_update_check_info", + "target": "login_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2439", + "weight": 1.0 + }, + { + "source": "admin_panel_views_update_check_info", + "target": "permission_required", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2440", + "weight": 1.0 + }, + { + "source": "admin_panel_views_update_check_info", + "target": "require_post", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "decorator", + "source_file": "admin_panel/views.py", + "source_location": "L2441", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "time", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "contextlib", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "admin_panel_models_productinstore", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "requests", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_models_action", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_models_article", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_models_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_models_factor", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_models_sarresid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "sqlite3", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "shutil", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "fcntl", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "signal", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "boto3", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "django_utils_timezone", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "django_db_models_deletion", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "django_core_validators", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_models_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_models_productinstore", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_models_storeroom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_models_storetransferrequest", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "cv2", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "numpy", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_models_product", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_models_productcategory", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_models_productinstore", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_models_storeroom", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_models_storetransferrequest", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L1145", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "ddddocr", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "re", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "base64", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "logging", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L1993", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L2286", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_models_action", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L2290", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "json", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_services_approve_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_services_create_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_services_reject_transfer_request", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "asyncio", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "admin_panel_models_article", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "admin_panel_models_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "admin_panel_models_sarresid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "admin_panel_models_article", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "admin_panel_models_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "admin_panel_models_sarresid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "csv", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "khatibi_asgi", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/asgi.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "admin_panel_init", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/wsgi.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "manage", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "manage.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "manage", + "target": "sys", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "manage.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "os", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "admin_panel_models_article", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "admin_panel_models_customer", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "admin_panel_models_sarresid", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "csv", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "datetime", + "relation": "imports", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_admin", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/admin.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_apps", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/apps.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/models.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/admin.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/admin.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_apps", + "target": "django_apps", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/apps.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/context_processor.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "botocore_config", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "botocore_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "django_core_management_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "datetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0004_factor_paytype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0005_auto_20220121_2054", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0006_auto_20220121_2100", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0009_remove_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0010_auto_20220122_1546", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0013_alter_factor_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0014_auto_20220123_1348", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0017_factoriteam_garantyesh", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0020_auto_20220126_1532", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0021_alter_article_type", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0022_article_typepy", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0023_alter_article_typepy", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0025_action_actiontype", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0027_alter_action_nazar", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0028_action_grade", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0029_alter_article_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0030_auto_20220414_1047", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0032_article_paystatus", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0033_article_nahvepardakht", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0034_alter_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0035_alter_article_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0037_sarresid_sarresiddt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0040_customer_laghv_bazdid", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0041_auto_20240216_1607", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0044_sarresid_desc", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0048_alter_productinstore_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0049_alter_productinstore_options", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0055_action_nextnazardt", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "django_dispatch", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "django_core_validators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/models.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "typing", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_utils_translation", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/services.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "django", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p", + "target": "django", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_tests", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/tests.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "django_conf_urls_static", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "admin_panel_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/urls.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L1142", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "playwright_async_api", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_utils", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_core_paginator", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L1991", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_urls_base", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_core_exceptions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_views_decorators_csrf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_views_decorators_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L2287", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L2288", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_contrib_auth_decorators", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L2289", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L2290", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_db", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_contrib_auth_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_contrib_auth", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L27", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_services", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L33", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "persiantools_jdatetime", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "persiantools", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "asgiref_sync", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin_panel/views.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_tests", + "target": "django_test", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/tests.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "admin_init", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "django_shortcuts", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/views.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "django_http", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "admin/views.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "check_finance.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "ghost_hunter.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "khatibi_asgi", + "target": "django_core_asgi", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/asgi.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "khatibi_production_settings", + "target": "khatibi_settings", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/production_settings.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_production_settings", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/production_settings.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "khatibi_settings", + "target": "pathlib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/settings.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_contrib", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_urls", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_conf", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L18", + "weight": 1.0 + }, + { + "source": "khatibi_urls", + "target": "django_conf_urls_static", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/urls.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi", + "target": "django_core_wsgi", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "khatibi/wsgi.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django_db_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L14", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "django_db_models_functions", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "admin_panel_models", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "import", + "source_file": "reconciliation_tool.py", + "source_location": "L16", + "weight": 1.0 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_source_store_permission", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_target_store_permission", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "abstractbaseuser", + "relation": "references", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "admin_panel_urls", + "target": "admin_panel_views", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "admin_panel/urls.py", + "source_location": "L5", + "weight": 1.0 + }, + { + "source": "admin_urls", + "target": "admin_views", + "relation": "imports_from", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "context": "submodule_import", + "source_file": "admin/urls.py", + "source_location": "L3", + "weight": 1.0 + }, + { + "source": "admin_apps", + "target": "admin_apps_adminconfig", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_phonenumber", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_storeroom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_productcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L34", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_productinstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_user", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_factor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L44", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_factoriteam", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "admin_models", + "target": "admin_models_visitqueue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/models.py", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storetransferrequestadmin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L24", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storeroomownerinline", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "admin_panel_admin", + "target": "admin_panel_admin_storeroomadmin", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "admin_panel_apps", + "target": "admin_panel_apps_adminpanelconfig", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_context_processor", + "target": "admin_panel_context_processor_dashboxdata", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/context_processor.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh", + "target": "admin_panel_management_commands_gt_esh_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report", + "target": "admin_panel_management_commands_send_daily_report_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup", + "target": "admin_panel_management_commands_sqlite_db_backup_command", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0001_initial", + "target": "admin_panel_migrations_0001_initial_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0001_initial.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0002_auto_20220114_1616", + "target": "admin_panel_migrations_0002_auto_20220114_1616_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0002_auto_20220114_1616.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0003_auto_20220115_1401", + "target": "admin_panel_migrations_0003_auto_20220115_1401_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0003_auto_20220115_1401.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0004_factor_paytype", + "target": "admin_panel_migrations_0004_factor_paytype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0004_factor_paytype.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0005_auto_20220121_2054", + "target": "admin_panel_migrations_0005_auto_20220121_2054_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0005_auto_20220121_2054.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0006_auto_20220121_2100", + "target": "admin_panel_migrations_0006_auto_20220121_2100_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0006_auto_20220121_2100.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0007_productinstore_factor", + "target": "admin_panel_migrations_0007_productinstore_factor_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0007_productinstore_factor.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0008_storeroom_user", + "target": "admin_panel_migrations_0008_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0008_storeroom_user.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0009_remove_storeroom_user", + "target": "admin_panel_migrations_0009_remove_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0009_remove_storeroom_user.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0010_auto_20220122_1546", + "target": "admin_panel_migrations_0010_auto_20220122_1546_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0010_auto_20220122_1546.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0011_storeroom_user", + "target": "admin_panel_migrations_0011_storeroom_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0011_storeroom_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0012_visitqueue_user", + "target": "admin_panel_migrations_0012_visitqueue_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0012_visitqueue_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0013_alter_factor_options", + "target": "admin_panel_migrations_0013_alter_factor_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0013_alter_factor_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0014_auto_20220123_1348", + "target": "admin_panel_migrations_0014_auto_20220123_1348_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0014_auto_20220123_1348.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0015_auto_20220124_0858", + "target": "admin_panel_migrations_0015_auto_20220124_0858_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0015_auto_20220124_0858.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0016_factor_user", + "target": "admin_panel_migrations_0016_factor_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0016_factor_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0017_factoriteam_garantyesh", + "target": "admin_panel_migrations_0017_factoriteam_garantyesh_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0017_factoriteam_garantyesh.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0018_alter_factoriteam_product", + "target": "admin_panel_migrations_0018_alter_factoriteam_product_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0018_alter_factoriteam_product.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0019_article_articletype", + "target": "admin_panel_migrations_0019_article_articletype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0019_article_articletype.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0020_auto_20220126_1532", + "target": "admin_panel_migrations_0020_auto_20220126_1532_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0020_auto_20220126_1532.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0021_alter_article_type", + "target": "admin_panel_migrations_0021_alter_article_type_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0021_alter_article_type.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0022_article_typepy", + "target": "admin_panel_migrations_0022_article_typepy_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0022_article_typepy.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0023_alter_article_typepy", + "target": "admin_panel_migrations_0023_alter_article_typepy_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0023_alter_article_typepy.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0024_action", + "target": "admin_panel_migrations_0024_action_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0024_action.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0025_action_actiontype", + "target": "admin_panel_migrations_0025_action_actiontype_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0025_action_actiontype.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0026_auto_20220209_1924", + "target": "admin_panel_migrations_0026_auto_20220209_1924_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0026_auto_20220209_1924.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0027_alter_action_nazar", + "target": "admin_panel_migrations_0027_alter_action_nazar_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0027_alter_action_nazar.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0028_action_grade", + "target": "admin_panel_migrations_0028_action_grade_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0028_action_grade.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0029_alter_article_options", + "target": "admin_panel_migrations_0029_alter_article_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0029_alter_article_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0030_auto_20220414_1047", + "target": "admin_panel_migrations_0030_auto_20220414_1047_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0030_auto_20220414_1047.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0031_article_sarresid", + "target": "admin_panel_migrations_0031_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0031_article_sarresid.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0032_article_paystatus", + "target": "admin_panel_migrations_0032_article_paystatus_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0032_article_paystatus.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0033_article_nahvepardakht", + "target": "admin_panel_migrations_0033_article_nahvepardakht_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0033_article_nahvepardakht.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0034_alter_article_sarresid", + "target": "admin_panel_migrations_0034_alter_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0034_alter_article_sarresid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0035_alter_article_sarresid", + "target": "admin_panel_migrations_0035_alter_article_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0035_alter_article_sarresid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0036_sarresid", + "target": "admin_panel_migrations_0036_sarresid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0036_sarresid.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0037_sarresid_sarresiddt", + "target": "admin_panel_migrations_0037_sarresid_sarresiddt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0037_sarresid_sarresiddt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0038_auto_20240213_1735", + "target": "admin_panel_migrations_0038_auto_20240213_1735_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0038_auto_20240213_1735.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0039_customer_last_bazdid_dt", + "target": "admin_panel_migrations_0039_customer_last_bazdid_dt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0039_customer_last_bazdid_dt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0040_customer_laghv_bazdid", + "target": "admin_panel_migrations_0040_customer_laghv_bazdid_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0040_customer_laghv_bazdid.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0041_auto_20240216_1607", + "target": "admin_panel_migrations_0041_auto_20240216_1607_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0041_auto_20240216_1607.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0042_article_user", + "target": "admin_panel_migrations_0042_article_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0042_article_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0043_sarresid_user", + "target": "admin_panel_migrations_0043_sarresid_user_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0043_sarresid_user.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0044_sarresid_desc", + "target": "admin_panel_migrations_0044_sarresid_desc_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0044_sarresid_desc.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0045_auto_20260610_1421", + "target": "admin_panel_migrations_0045_auto_20260610_1421_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0045_auto_20260610_1421.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0046_auto_20260624_1818", + "target": "admin_panel_migrations_0046_auto_20260624_1818_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0046_auto_20260624_1818.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0047_alter_productinstore_movement_type", + "target": "admin_panel_migrations_0047_alter_productinstore_movement_type_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0047_alter_productinstore_movement_type.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0048_alter_productinstore_options", + "target": "admin_panel_migrations_0048_alter_productinstore_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0048_alter_productinstore_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0049_alter_productinstore_options", + "target": "admin_panel_migrations_0049_alter_productinstore_options_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0049_alter_productinstore_options.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0050_storetransferrequest", + "target": "admin_panel_migrations_0050_storetransferrequest_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0050_storetransferrequest.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0051_auto_20260705_1356", + "target": "admin_panel_migrations_0051_auto_20260705_1356_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0051_auto_20260705_1356.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0052_storeroomowner", + "target": "admin_panel_migrations_0052_storeroomowner_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0052_storeroomowner.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0053_storeroom_owners", + "target": "admin_panel_migrations_0053_storeroom_owners_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0053_storeroom_owners.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0054_auto_20260715_2250", + "target": "admin_panel_migrations_0054_auto_20260715_2250_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0054_auto_20260715_2250.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0055_action_nextnazardt", + "target": "admin_panel_migrations_0055_action_nextnazardt_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0055_action_nextnazardt.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_migrations_0056_auto_20260731_1824", + "target": "admin_panel_migrations_0056_auto_20260731_1824_migration", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/migrations/0056_auto_20260731_1824.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_productcategory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L112", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_product", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L119", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_factor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L135", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_userprofile", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_productinstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L181", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_productstockhistory", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L300", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_storetransferrequest", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L315", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_factoriteam", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L400", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_visitqueue", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L409", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_articletype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L428", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_article", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L432", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_action", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L453", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_sarresid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L470", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_cachetable", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L510", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_phonenumber", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_storeroom", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L69", + "weight": 1.0 + }, + { + "source": "admin_panel_models", + "target": "admin_panel_models_storeroomowner", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "admin_panel_models_article", + "target": "admin_panel_models_article_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L433", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customer", + "target": "admin_panel_models_customer_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L31", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factor", + "target": "admin_panel_models_factor_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L136", + "weight": 1.0 + }, + { + "source": "admin_panel_models_product", + "target": "admin_panel_models_product_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L120", + "weight": 1.0 + }, + { + "source": "admin_panel_models_productinstore", + "target": "admin_panel_models_productinstore_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L182", + "weight": 1.0 + }, + { + "source": "admin_panel_models_productinstore", + "target": "admin_panel_models_productinstore_movementtype", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L188", + "weight": 1.0 + }, + { + "source": "admin_panel_models_productstockhistory", + "target": "admin_panel_models_productstockhistory_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L308", + "weight": 1.0 + }, + { + "source": "admin_panel_models_storeroom", + "target": "admin_panel_models_storeroom_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "admin_panel_models_storetransferrequest", + "target": "admin_panel_models_storetransferrequest_status", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L316", + "weight": 1.0 + }, + { + "source": "admin_panel_models_storetransferrequest", + "target": "admin_panel_models_storetransferrequest_meta", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L387", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_reject_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_check_target_store_permission", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_check_source_store_permission", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_get_product_current_stock", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_create_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "admin_panel_services", + "target": "admin_panel_services_approve_transfer_request", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "admin_panel_templatetags_custom_tags_has_group", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L11", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_custom_tags", + "target": "admin_panel_templatetags_custom_tags_tojalali", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/custom_tags.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p", + "target": "admin_panel_templatetags_remove_q_p_remove_query_param", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L102", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customeredit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1029", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_entezar", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1072", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_stores", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1133", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_store", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1149", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_operations", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1222", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_operationproduct", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1251", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_newoperation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1270", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_store_transfers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1280", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_process_transfer_action", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1319", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_newstore", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1366", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_productadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1376", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_productedit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1402", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_productdel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1420", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_operation", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1426", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_newfactor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1545", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_newfactor2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1690", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_factordel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1892", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customerdel", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1999", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_report_debtors_no_vosol", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L202", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customerhesabdari", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2047", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_sarresidh", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2063", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customerhesabdariadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2074", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customeraction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2099", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customernazar", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2135", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customernewaction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2143", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_actionlist", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2184", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_actionlistuser", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2191", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customereditaction", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2198", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_actionlistall", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2241", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_actionlisttoday", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2248", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_actionlistusertoday", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2260", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_rezayat", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2293", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_rezayatedit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2325", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_rezayat_dashboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2360", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_passcheck", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2411", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_update_check_info", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2442", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_addsarresid", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2490", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_pardakhtnesiye", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2581", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_solve_base64_captcha", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2645", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_parse_cheque_result_html", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2690", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_run_cbi_sayad_inquiry_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2710", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_run_bpi_cheque_inquiry_logic", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2808", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_api_check_status_inquiry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2851", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_api_check_sabt_inquiry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2874", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_inventory_movements_report", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L312", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_inventoryexception", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_financial_dashboard", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L394", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_safe_int", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L42", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_parse_jalali_date", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_bedehi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L593", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_hesabdari", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L612", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_parse_timestamp", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_hesabdari_checkpass", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L667", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_hesabdari_checkpassfail", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L687", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_hesabdari_residnashone", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L710", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_bedehikhadamat", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L731", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_p_login", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_bedehinasb", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L747", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customers", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L762", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customerssearch", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L792", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customer", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L816", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customernew", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L827", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customernew2", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L839", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customerfactors", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L862", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customerfactor", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L927", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_productsjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L939", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_actionjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L946", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_p_logout", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customerjson", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L953", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_productmojodi", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L961", + "weight": 1.0 + }, + { + "source": "admin_panel_views", + "target": "admin_panel_views_customersadd", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L987", + "weight": 1.0 + }, + { + "source": "admin_views", + "target": "admin_views_index", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/views.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "check_finance", + "target": "check_finance_check_financial_discrepancy", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "check_finance.py", + "source_location": "L13", + "weight": 1.0 + }, + { + "source": "entrypoint", + "target": "entrypoint_sh__entry", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "entrypoint.sh", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "gemini", + "target": "gemini_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "GEMINI.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "ghost_hunter", + "target": "ghost_hunter_run_360_audit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "ghost_hunter.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "github_copilot_instructions", + "target": "github_copilot_instructions_graphify", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "manage", + "target": "manage_main", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "reconciliation_tool", + "target": "reconciliation_tool_run_audit", + "relation": "contains", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "reconciliation_tool.py", + "source_location": "L21", + "weight": 1.0 + }, + { + "source": "admin_apps_adminconfig", + "target": "admin_apps_py_appconfig", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_apps_adminpanelconfig", + "target": "admin_panel_apps_py_appconfig", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/apps.py", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_management_commands_send_daily_report_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L12", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_py_basecommand", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L17", + "weight": 1.0 + }, + { + "source": "admin_panel_views_inventoryexception", + "target": "exception", + "relation": "inherits", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L38", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_storeroomadmin", + "target": "admin_panel_admin_storeroomadmin_get_owners_count", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L74", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L114", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L122", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_add_arguments", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L28", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_management_commands_send_daily_report_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L15", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L157", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_critical_failure", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L173", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_init", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L29", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L37", + "weight": 1.0 + }, + { + "source": "admin_panel_models_cachetable", + "target": "admin_panel_models_cachetable_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L514", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customer", + "target": "admin_panel_models_customer_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L52", + "weight": 1.0 + }, + { + "source": "admin_panel_models_customer", + "target": "admin_panel_models_customer_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L56", + "weight": 1.0 + }, + { + "source": "admin_panel_models_factor", + "target": "admin_panel_models_factor_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L175", + "weight": 1.0 + }, + { + "source": "admin_panel_models_phonenumber", + "target": "admin_panel_models_phonenumber_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L66", + "weight": 1.0 + }, + { + "source": "admin_panel_models_product", + "target": "admin_panel_models_product_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L131", + "weight": 1.0 + }, + { + "source": "admin_panel_models_productcategory", + "target": "admin_panel_models_productcategory_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_models_productinstore", + "target": "admin_panel_models_productinstore_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L221", + "weight": 1.0 + }, + { + "source": "admin_panel_models_productinstore", + "target": "admin_panel_models_productinstore_save", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L225", + "weight": 1.0 + }, + { + "source": "admin_panel_models_productinstore", + "target": "admin_panel_models_productinstore_delete", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L271", + "weight": 1.0 + }, + { + "source": "admin_panel_models_productstockhistory", + "target": "admin_panel_models_productstockhistory_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L311", + "weight": 1.0 + }, + { + "source": "admin_panel_models_storeroom", + "target": "admin_panel_models_storeroom_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L92", + "weight": 1.0 + }, + { + "source": "admin_panel_models_storetransferrequest", + "target": "admin_panel_models_storetransferrequest_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L390", + "weight": 1.0 + }, + { + "source": "admin_panel_models_storetransferrequest", + "target": "admin_panel_models_storetransferrequest_clean", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L393", + "weight": 1.0 + }, + { + "source": "admin_panel_models_userprofile", + "target": "admin_panel_models_userprofile_str", + "relation": "method", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L26", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_rationale_54", + "target": "admin_panel_admin_storeroomownerinline", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L54", + "weight": 1.0 + }, + { + "source": "admin_panel_admin_rationale_75", + "target": "admin_panel_admin_storeroomadmin_get_owners_count", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/admin.py", + "source_location": "L75", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_115", + "target": "admin_panel_management_commands_gt_esh_command_execute_hybrid_migration", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_123", + "target": "admin_panel_management_commands_gt_esh_command_process_single_chunk", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L123", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_gt_esh_rationale_89", + "target": "admin_panel_management_commands_gt_esh_command_execute_by_immediate_chunks", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_rationale_158", + "target": "admin_panel_management_commands_sqlite_db_backup_command_cleanup_resources", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L158", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_rationale_30", + "target": "admin_panel_management_commands_sqlite_db_backup_command_signal_handler", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_models_rationale_97", + "target": "admin_panel_models_storeroomowner", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/models.py", + "source_location": "L97", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_160", + "target": "admin_panel_services_reject_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L160", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_187", + "target": "admin_panel_services_cancel_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L187", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_20", + "target": "admin_panel_services_check_target_store_permission", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L20", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_30", + "target": "admin_panel_services_check_source_store_permission", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L30", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_40", + "target": "admin_panel_services_get_product_current_stock", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L40", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_64", + "target": "admin_panel_services_create_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L64", + "weight": 1.0 + }, + { + "source": "admin_panel_services_rationale_99", + "target": "admin_panel_services_approve_transfer_request", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/services.py", + "source_location": "L99", + "weight": 1.0 + }, + { + "source": "admin_panel_templatetags_remove_q_p_rationale_7", + "target": "admin_panel_templatetags_remove_q_p_remove_query_param", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templatetags/remove_q_p.py", + "source_location": "L7", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_1281", + "target": "admin_panel_views_store_transfers", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1281", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_1320", + "target": "admin_panel_views_process_transfer_action", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L1320", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_2852", + "target": "admin_panel_views_api_check_status_inquiry", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2852", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_2875", + "target": "admin_panel_views_api_check_sabt_inquiry", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L2875", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_313", + "target": "admin_panel_views_inventory_movements_report", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L313", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_39", + "target": "admin_panel_views_inventoryexception", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L39", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_395", + "target": "admin_panel_views_financial_dashboard", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L395", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_43", + "target": "admin_panel_views_safe_int", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L43", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_53", + "target": "admin_panel_views_parse_jalali_date", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L53", + "weight": 1.0 + }, + { + "source": "admin_panel_views_rationale_65", + "target": "admin_panel_views_parse_timestamp", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/views.py", + "source_location": "L65", + "weight": 1.0 + }, + { + "source": "khatibi_asgi_rationale_1", + "target": "khatibi_asgi", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/asgi.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_settings_rationale_1", + "target": "khatibi_settings", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/settings.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_urls_rationale_1", + "target": "khatibi_urls", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/urls.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "khatibi_wsgi_rationale_1", + "target": "khatibi_wsgi", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "khatibi/wsgi.py", + "source_location": "L1", + "weight": 1.0 + }, + { + "source": "manage_rationale_2", + "target": "manage", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L2", + "weight": 1.0 + }, + { + "source": "manage_rationale_8", + "target": "manage_main", + "relation": "rationale_for", + "_origin": "ast", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "manage.py", + "source_location": "L8", + "weight": 1.0 + }, + { + "source": "entrypoint_sh__entry", + "target": "manage", + "relation": "invokes", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.55, + "context": "script_invocation", + "source_file": "entrypoint.sh", + "source_location": "L10", + "weight": 1.0 + }, + { + "source": "admin_panel_management_commands_sqlite_db_backup_command_handle", + "target": "admin_panel_management_commands_sqlite_db_backup_command_handle_progress_callback", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/management/commands/sqlite_db_backup.py", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "admin_panel_views_api_check_sabt_inquiry", + "target": "admin_panel_views_run_bpi_cheque_inquiry_logic", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/views.py", + "source_location": "L2892", + "weight": 1.0 + }, + { + "source": "admin_panel_views_api_check_status_inquiry", + "target": "admin_panel_views_run_cbi_sayad_inquiry_logic", + "relation": "indirect_call", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "argument", + "source_file": "admin_panel/views.py", + "source_location": "L2863", + "weight": 1.0 + }, + { + "source": "admin_panel_views_factordel", + "target": "admin_panel_models_productinstore_save", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1975", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_panel_models_factor_delete", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1603", + "weight": 1.0 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_panel_models_productinstore_save", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1683", + "weight": 1.0 + }, + { + "source": "admin_panel_views_productadd", + "target": "admin_panel_models_productinstore_save", + "relation": "calls", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.85, + "context": "call", + "source_file": "admin_panel/views.py", + "source_location": "L1395", + "weight": 1.0 + }, + { + "source": "admin_panel_services_check_source_store_permission", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L29", + "weight": 0.8 + }, + { + "source": "admin_panel_services_check_target_store_permission", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L19", + "weight": 0.8 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L57", + "weight": 0.8 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L59", + "weight": 0.8 + }, + { + "source": "admin_panel_services_get_product_current_stock", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 0.8 + }, + { + "source": "admin_panel_services_get_product_current_stock", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "parameter_type", + "source_file": "admin_panel/services.py", + "source_location": "L39", + "weight": 0.8 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L98", + "weight": 0.8 + }, + { + "source": "admin_panel_services_cancel_transfer_request", + "target": "admin_panel_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L186", + "weight": 0.8 + }, + { + "source": "admin_panel_services_create_transfer_request", + "target": "admin_panel_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L63", + "weight": 0.8 + }, + { + "source": "admin_panel_services_reject_transfer_request", + "target": "admin_panel_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "context": "return_type", + "source_file": "admin_panel/services.py", + "source_location": "L159", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_gt_esh_command", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/gt_esh.py", + "source_location": "L52", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L32", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_models_factor", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L35", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_models_article", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L48", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_models_sarresid", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L61", + "weight": 0.8 + }, + { + "source": "admin_panel_management_commands_send_daily_report_command", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/management/commands/send_daily_report.py", + "source_location": "L74", + "weight": 0.8 + }, + { + "source": "admin_panel_models_action", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models.py", + "source_location": "L455", + "weight": 0.8 + }, + { + "source": "admin_panel_models_factor", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models.py", + "source_location": "L149", + "weight": 0.8 + }, + { + "source": "admin_panel_models_storeroom", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models.py", + "source_location": "L78", + "weight": 0.8 + }, + { + "source": "admin_panel_models_storeroomowner", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models.py", + "source_location": "L105", + "weight": 0.8 + }, + { + "source": "admin_panel_models_storetransferrequest", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models.py", + "source_location": "L352", + "weight": 0.8 + }, + { + "source": "admin_panel_models_userprofile", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models.py", + "source_location": "L21", + "weight": 0.8 + }, + { + "source": "admin_panel_models_visitqueue", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/models.py", + "source_location": "L418", + "weight": 0.8 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/services.py", + "source_location": "L124", + "weight": 0.8 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/services.py", + "source_location": "L125", + "weight": 0.8 + }, + { + "source": "admin_panel_services_approve_transfer_request", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/services.py", + "source_location": "L126", + "weight": 0.8 + }, + { + "source": "admin_panel_services_get_product_current_stock", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/services.py", + "source_location": "L44", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionjson", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L949", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlist", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2185", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlist", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2186", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlistall", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2242", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlistall", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2243", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlisttoday", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2254", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlisttoday", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2255", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlistuser", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2192", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlistuser", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2193", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlistusertoday", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2276", + "weight": 0.8 + }, + { + "source": "admin_panel_views_actionlistusertoday", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2282", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customer", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L818", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customeraction", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2108", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customeraction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2121", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customerdel", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2013", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customereditaction", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2219", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customereditaction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2223", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customerfactor", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L929", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customerfactors", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L864", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customernazar", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2137", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customernazar", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2138", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customernew", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L829", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customernew2", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L841", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customernewaction", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2162", + "weight": 0.8 + }, + { + "source": "admin_panel_views_customernewaction", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2166", + "weight": 0.8 + }, + { + "source": "admin_panel_views_factordel", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1905", + "weight": 0.8 + }, + { + "source": "admin_panel_views_factordel", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1966", + "weight": 0.8 + }, + { + "source": "admin_panel_views_factordel", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1967", + "weight": 0.8 + }, + { + "source": "admin_panel_views_financial_dashboard", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L462", + "weight": 0.8 + }, + { + "source": "admin_panel_views_inventory_movements_report", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L317", + "weight": 0.8 + }, + { + "source": "admin_panel_views_inventory_movements_report", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L318", + "weight": 0.8 + }, + { + "source": "admin_panel_views_inventory_movements_report", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L319", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1576", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1598", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1653", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newfactor", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1668", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1707", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1716", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newfactor2", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1836", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newoperation", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1271", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newoperation", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1272", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newoperation", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1274", + "weight": 0.8 + }, + { + "source": "admin_panel_views_newstore", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1368", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operation", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1431", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operation", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1445", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operation", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1481", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operationproduct", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1252", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operationproduct", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1253", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operationproduct", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1256", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operations", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1224", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operations", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1225", + "weight": 0.8 + }, + { + "source": "admin_panel_views_operations", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1228", + "weight": 0.8 + }, + { + "source": "admin_panel_views_process_transfer_action", + "target": "admin_panel_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1327", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productadd", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1383", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productadd", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1385", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productadd", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1389", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productadd", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1391", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productdel", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1421", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productedit", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1410", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productedit", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1412", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productmojodi", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L964", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productmojodi", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L971", + "weight": 0.8 + }, + { + "source": "admin_panel_views_productsjson", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L942", + "weight": 0.8 + }, + { + "source": "admin_panel_views_report", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L113", + "weight": 0.8 + }, + { + "source": "admin_panel_views_report_debtors_no_vosol", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L236", + "weight": 0.8 + }, + { + "source": "admin_panel_views_rezayat", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2303", + "weight": 0.8 + }, + { + "source": "admin_panel_views_rezayat_dashboard", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2362", + "weight": 0.8 + }, + { + "source": "admin_panel_views_rezayat_dashboard", + "target": "admin_models_user", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2393", + "weight": 0.8 + }, + { + "source": "admin_panel_views_rezayatedit", + "target": "admin_panel_models_action", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L2330", + "weight": 0.8 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_models_productcategory", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1150", + "weight": 0.8 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1151", + "weight": 0.8 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_models_productinstore", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1157", + "weight": 0.8 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1165", + "weight": 0.8 + }, + { + "source": "admin_panel_views_store", + "target": "admin_panel_models_product", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1184", + "weight": 0.8 + }, + { + "source": "admin_panel_views_store_transfers", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1284", + "weight": 0.8 + }, + { + "source": "admin_panel_views_store_transfers", + "target": "admin_panel_models_storetransferrequest", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1288", + "weight": 0.8 + }, + { + "source": "admin_panel_views_stores", + "target": "admin_panel_models_storeroom", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "admin_panel/views.py", + "source_location": "L1135", + "weight": 0.8 + }, + { + "source": "check_finance_check_financial_discrepancy", + "target": "admin_panel_models_article", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "check_finance.py", + "source_location": "L19", + "weight": 0.8 + }, + { + "source": "check_finance_check_financial_discrepancy", + "target": "admin_panel_models_sarresid", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "check_finance.py", + "source_location": "L25", + "weight": 0.8 + }, + { + "source": "check_finance_check_financial_discrepancy", + "target": "admin_panel_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "check_finance.py", + "source_location": "L42", + "weight": 0.8 + }, + { + "source": "ghost_hunter_run_360_audit", + "target": "admin_panel_models_article", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "ghost_hunter.py", + "source_location": "L20", + "weight": 0.8 + }, + { + "source": "ghost_hunter_run_360_audit", + "target": "admin_panel_models_sarresid", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "ghost_hunter.py", + "source_location": "L23", + "weight": 0.8 + }, + { + "source": "ghost_hunter_run_360_audit", + "target": "admin_panel_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "ghost_hunter.py", + "source_location": "L37", + "weight": 0.8 + }, + { + "source": "reconciliation_tool_run_audit", + "target": "admin_panel_models_article", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "reconciliation_tool.py", + "source_location": "L27", + "weight": 0.8 + }, + { + "source": "reconciliation_tool_run_audit", + "target": "admin_panel_models_sarresid", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "reconciliation_tool.py", + "source_location": "L37", + "weight": 0.8 + }, + { + "source": "reconciliation_tool_run_audit", + "target": "admin_panel_models_customer", + "relation": "uses", + "_origin": "ast", + "confidence": "INFERRED", + "confidence_score": 0.95, + "source_file": "reconciliation_tool.py", + "source_location": "L42", + "weight": 0.8 + }, + { + "source": "admin_panel_templates_admin_panel_base", + "target": "admin_panel_templates_admin_panel_basehesabdari", + "relation": "conceptually_related_to", + "_origin": "semantic", + "confidence": "AMBIGUOUS", + "confidence_score": 0.2, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "admin_panel_templates_admin_panel_base", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "admin_panel_templates_admin_panel_base", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerid", + "target": "admin_panel_templates_admin_panel_customerbase", + "relation": "implements", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_actionlistusertoday", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_bedehi", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_entezar", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_hesabdari", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_hesabdari_residnashone", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_index", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_p_logout", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_rezayat", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "concept_url_admin_panel_stores", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_bulma_min_css", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_datatables_datatables_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_kamadatepicker_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_persian-datepicker_min_js", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basehesabdari", + "target": "static_admin_panel_style_css", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_django_custom_tags", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_operations", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_productadd", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_store", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_basestore", + "target": "concept_url_admin_panel_store_transfers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerfactorbackup", + "target": "concept_url_panel_customer_factor_del", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerid", + "target": "concept_url_admin_panel_newfactor", + "relation": "references", + "_origin": "semantic", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerID.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_templatetags_tojalali", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 60 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "javascript_jquery", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 105 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_productsjson", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 106 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_productmojodi", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 148 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_customer_delete", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 220 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "javascript_pdatepicker", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 246 + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "api_endpoint_panel_customer_del", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "api_endpoint_panel_productmojodi", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_productsjson", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "js_library_pdatepicker", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "panel_urls_productmojodi", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html", + "target": "concept_datatables", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 322, + 322 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_kamadatepicker", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 203, + 203 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "django_templatetags_custom_tags_tojalali", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 35, + 35 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "javascript_library_pdatepicker", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 180, + 180 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags_tocurrency", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 14 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "lib_pdatepicker", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 192 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_views_passcheck", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 206 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags_tojalali", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 60 + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "javascript_kamadatepicker", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "copilot_chat", + "target": "github_copilot_instructions_graphify", + "relation": "calls", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "admin_panel_url_customernew", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "concept_jquery", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "django_template_tag_static", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "django_template_tag_url", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "library_bulma", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehbk", + "target": "library_datatables", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehiBK.html" + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehi", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 10 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehikhadamat", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 11 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_bedehinasb", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 12 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_context_variable_mandehesabkp", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 18 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_templatetags_custom_tags", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 2 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 4 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_context_variable_articls", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "django_urls_admin_panel_customer", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "source": "admin_panel_templates_admin_panel_bedehi_html", + "target": "javascript_jquery", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 88 + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_templates_admin_panel_customeractioninc_html", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_urls_customernew", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "admin_panel_urls_customernewaction", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_jquery", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "django_template_tag_static", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "django_template_tag_url", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "library_pdatepicker", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "django_templatetags_static", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 3 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_customerhesabdari", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 86 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_customernew", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 88 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_customerfactors", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 89 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_views_customeredit", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 9 + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "admin_panel_url_customernew", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_category", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_customer", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "concept_permission", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_filter_tojalali", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_tag_custom_tags", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_template_tag_static", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_customeredit", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_customerfactors", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html", + "target": "django_url_admin_panel_newfactor", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "admin_panel_urls_customer", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "admin_panel_urls_customeredit", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "django_contrib_staticfiles_templatetags_static", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "admin_panel_urls_newfactor", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_category", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_customer", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_concepts_csrf_token", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_template_tags_custom_tags", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "django_template_tags_static", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "django_templatetags_custom_tags", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 2, + 2 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_jquery", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 201, + 201 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_url_admin_panel_customers", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 29, + 29 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_customernew", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_pardakhtnesiye", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "admin_panel_urls_passcheck", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "concept_all_sarresid", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "django_context_variable_mandehesabkp", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "javascript_jquery", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "target": "javascript_pdatepicker", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_pardakhtnesiye", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 111, + 111 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_passcheck", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 201, + 201 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "django_permission_viewreportmali", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 4, + 4 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_url_customernew", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_urls_pardakhtnesiye", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 106 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "lib_jquery", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 182 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "templatetags_custom_tags", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 2 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "django_permissions_admin_panel_viewreportmali", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 4 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_urls_customernew", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 53 + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_csrf_token", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_static_files", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "django_url_admin_panel_p_login", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "form_field_password", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "form_field_username", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "static_admin_panel_bulma-rtl_min_css", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_login", + "target": "template_variable_message", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/login.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_csrf_token", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_custom_tags", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_newstore", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_operations", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "django_url_admin_panel_store", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "form_field_storename", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_storebk1", + "target": "template_variable_productsum", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "django_url_admin_panel_operations", + "target": "template_variable_s_id", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "django_url_admin_panel_store", + "target": "template_variable_s_id", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "github_copilot_instructions", + "target": "graphify-out_graph_report_md", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions", + "target": "graphify-out_wiki_index_md", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "graphify_query", + "target": "graphify-out_graph_json", + "relation": "references", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "django_context_variable_articls", + "target": "concept_articl_model", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 47 + }, + { + "source": "templatetags_custom_tags", + "target": "templatetags_custom_tags_tocurrency", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "source": "templatetags_custom_tags", + "target": "templatetags_custom_tags_tojalali", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "django_contrib_auth_models_permission", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerBase.html", + "source_location": 33 + }, + { + "source": "admin_panel_templates_admin_panel_customerbase", + "target": "admin_panel_models_customer", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerBase.html" + }, + { + "source": "admin_panel_templates_admin_panel_hesabdariresidnashode", + "target": "admin_panel_data_sarresid", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html", + "source_location": 49 + }, + { + "source": "concept_articl_model", + "target": "concept_customer_model", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/bedehi.html", + "source_location": 54 + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_action_model", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_customer_model", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeraction", + "target": "concept_user", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "target": "django_url_admin_panel_newfactor", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "django_url_admin_panel_productsjson", + "target": "admin_panel_templates_admin_panel_customeridbackup_html_all_products", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "source": "template_variable_productsum", + "target": "product_property_mojodi", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "template_variable_productsum", + "target": "product_property_product_name", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.55, + "source_file": "admin_panel/templates/admin_panel/storeBK1.html" + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html_createcs", + "target": "concept_customer_modal_ui", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 334, + 334 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html_openrow", + "target": "concept_customer_modal_ui", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 382, + 382 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_data_sarresid", + "target": "admin_panel_data_customer", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 60, + 60 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_data_sarresid", + "target": "admin_panel_data_factor", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 72, + 72 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "admin_panel_data_sarresid", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 54, + 54 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_user", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customernewbackup_html", + "target": "concept_client_side_form_logic", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html", + "source_location": null, + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customersbk_html", + "target": "concept_jquery", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.html", + "source_location": [ + 321, + 321 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_entezar_html", + "target": "concept_customer_data", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/entezar.html", + "source_location": [ + 25, + 25 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_hesabdaricheckpassfail_html", + "target": "javascript_library_jquery", + "relation": "references", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPassFail.html", + "source_location": [ + 172, + 172 + ], + "weight": 1.0 + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_customer", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_factor", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html", + "target": "concept_productcategory", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "concept_product", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "target": "concept_productcategory", + "relation": "shares_data_with", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.html" + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_explain", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_path", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + }, + { + "source": "github_copilot_instructions_graphify", + "target": "graphify_query", + "relation": "conceptually_related_to", + "confidence": "INFERRED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md", + "source_location": null, + "weight": 1.0 + } + ], + "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": "graphify_output_artifacts", + "label": "Graphify Output Artifacts", + "nodes": [ + "graphify-out_graph_json", + "graphify-out_wiki_index_md", + "graphify-out_graph_report_md" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "id": "graphify_subcommands", + "label": "Graphify Subcommands", + "nodes": [ + "graphify_query", + "graphify_path", + "graphify_explain" + ], + "relation": "form", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": ".github/copilot-instructions.md" + }, + { + "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": "bedehi_report_navigation", + "label": "Bedehi Report Navigation", + "nodes": [ + "django_urls_admin_panel_bedehi", + "django_urls_admin_panel_bedehikhadamat", + "django_urls_admin_panel_bedehinasb" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/bedehi.html" + }, + { + "id": "client_side_factor_creation_flow", + "label": "Client-side New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customerbase", + "admin_panel_views_productsjson", + "admin_panel_views_productmojodi" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/customerBase.html" + }, + { + "id": "customer_management_navigation", + "label": "Customer Management Navigation", + "nodes": [ + "admin_panel_views_customerhesabdari", + "admin_panel_views_customernew", + "admin_panel_views_customerfactors" + ], + "relation": "participate_in", + "confidence": "EXTRACTED", + "source_file": "admin_panel/templates/admin_panel/customerBase.html" + }, + { + "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_list_page", + "label": "Customer List Page", + "nodes": [ + "admin_panel_templates_admin_panel_entezar_html", + "concept_customer_data", + "concept_url_admin_panel_customers" + ], + "relation": "form", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "admin_panel/templates/admin_panel/entezar.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": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customernewbackup_html", + "admin_panel_urls_newfactor", + "concept_client_side_form_logic", + "concept_customer", + "concept_category" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.85, + "source_file": "admin_panel/templates/admin_panel/customerNewBackup.html" + }, + { + "id": "customer_management_ui_flow", + "label": "Customer Management UI Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customersbk_html", + "admin_panel_templates_admin_panel_customersbk_html_createcs", + "admin_panel_templates_admin_panel_customersbk_html_openrow", + "concept_customer_modal_ui" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customersBK.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": "new_factor_item_creation_flow", + "label": "New Factor Item Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridfactorbackup_html_js", + "panel_urls_productmojodi", + "concept_product", + "concept_productcategory" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "confidence_score": 0.9, + "source_file": "admin_panel/templates/admin_panel/customerIDFactorBackup.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", + "concept_url_admin_panel_hesabdari", + "concept_url_admin_panel_bedehi" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseHesabdari.html" + }, + { + "id": "bedehi_template_data_contract", + "label": "Bedehi Template Data Contract", + "nodes": [ + "admin_panel_templates_admin_panel_bedehi_html", + "django_context_variable_mandehesabkp", + "django_context_variable_articls" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/bedehi.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_action_creation_flow", + "label": "Customer Action Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeraction", + "admin_panel_urls_customernewaction", + "concept_action_model" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerAction.html" + }, + { + "id": "customer_management_ui", + "label": "Customer Management UI", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "concept_customer", + "django_url_admin_panel_customeredit", + "api_endpoint_panel_customer_del", + "django_url_admin_panel_customerfactors" + ], + "relation": "form", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "hesabdaricheckpass_payment_flow", + "label": "Client-side Payment Processing Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdaricheckpass_html", + "admin_panel_urls_passcheck", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariCheckPass.html" + }, + { + "id": "nesiye_payment_flow", + "label": "Nesiye Payment Flow", + "nodes": [ + "admin_panel_templates_admin_panel_hesabdariresidnashode", + "admin_panel_urls_pardakhtnesiye" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/hesabdariResidNashode.html" + }, + { + "id": "new_factor_creation_flow", + "label": "New Factor Creation Flow", + "nodes": [ + "admin_panel_templates_admin_panel_customeridbackup_html", + "django_url_admin_panel_productsjson", + "api_endpoint_panel_productmojodi", + "admin_panel_templates_admin_panel_customeridbackup_html_orderlist", + "admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist", + "django_url_admin_panel_newfactor" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/customerIDBackup.html" + }, + { + "id": "store_management_flow", + "label": "Store and Inventory Management Flow", + "nodes": [ + "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" + ], + "relation": "participate_in", + "confidence": "INFERRED", + "source_file": "admin_panel/templates/admin_panel/baseStore.html" + } + ], + "built_at_commit": "f19d8ee6a7b3b2ebabe354c909599186515a2616" +} \ No newline at end of file diff --git a/graphify-out/backup-manifest-20261009-194120.json b/graphify-out/backup-manifest-20261009-194120.json new file mode 100644 index 0000000..56e59c2 --- /dev/null +++ b/graphify-out/backup-manifest-20261009-194120.json @@ -0,0 +1,1052 @@ +{ + ".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/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" + }, + "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" + }, + "admin_panel/models/__init__.py": { + "mtime": 1791557632.7997675, + "seen": 1791560671.8564537, + "ast_hash": "165e6e5df8e2cc000fb913cbbd70d8c2", + "semantic_hash": "" + }, + "admin_panel/models/actions.py": { + "mtime": 1791557666.0745652, + "seen": 1791560671.8564537, + "ast_hash": "8213389e796cad243cdb758fc78076a5", + "semantic_hash": "" + }, + "admin_panel/models/customers.py": { + "mtime": 1791557639.9054313, + "seen": 1791560671.8564537, + "ast_hash": "7e177e9f29442a0d5bcb1302b72524a1", + "semantic_hash": "" + }, + "admin_panel/models/factors.py": { + "mtime": 1791557664.8430376, + "seen": 1791560671.8564537, + "ast_hash": "b5a348970dcc2fc55eca9e4671ce632d", + "semantic_hash": "" + }, + "admin_panel/models/finance.py": { + "mtime": 1791557674.5747583, + "seen": 1791560671.8564537, + "ast_hash": "63763eb4ce295bc31e505e91aebb72ea", + "semantic_hash": "" + }, + "admin_panel/models/products.py": { + "mtime": 1791557649.491398, + "seen": 1791560671.8564537, + "ast_hash": "e89576a8d9849bb308d3616815039e72", + "semantic_hash": "" + }, + "admin_panel/models/store.py": { + "mtime": 1791557657.92294, + "seen": 1791560671.8564537, + "ast_hash": "eb5af656ba8114816e5ccabf297fe73c", + "semantic_hash": "" + }, + "admin_panel/models/system.py": { + "mtime": 1791557640.9975393, + "seen": 1791560671.8564537, + "ast_hash": "519f162ee90768141c9d3a8bc66f899b", + "semantic_hash": "" + }, + "admin_panel/models/users.py": { + "mtime": 1791557633.8912268, + "seen": 1791560671.8564537, + "ast_hash": "c636d6b24297f946838a5611fead5d59", + "semantic_hash": "" + }, + "admin_panel/views/__init__.py": { + "mtime": 1791557970.059983, + "seen": 1791560671.8564537, + "ast_hash": "41e07adb8551940f6694858700d99bc2", + "semantic_hash": "" + }, + "admin_panel/views/_helpers.py": { + "mtime": 1791557770.240802, + "seen": 1791560671.8564537, + "ast_hash": "383c3c65c941b4aaf365d52045141d89", + "semantic_hash": "" + }, + "admin_panel/views/actions.py": { + "mtime": 1791557931.7421222, + "seen": 1791560671.8564537, + "ast_hash": "4a96fd10db79b691fa606e5d521d776b", + "semantic_hash": "" + }, + "admin_panel/views/auth.py": { + "mtime": 1791557771.327603, + "seen": 1791560671.8564537, + "ast_hash": "24746f251f3aec8ec22010b192fe0a7c", + "semantic_hash": "" + }, + "admin_panel/views/cheque_inquiry.py": { + "mtime": 1791557948.782825, + "seen": 1791560671.8564537, + "ast_hash": "364f4190f934261a082c189d8f44d29c", + "semantic_hash": "" + }, + "admin_panel/views/customers.py": { + "mtime": 1791558867.7794206, + "seen": 1791560671.8564537, + "ast_hash": "950ff4247b4dda2742da2af4d9999937", + "semantic_hash": "" + }, + "admin_panel/views/factors.py": { + "mtime": 1791557824.3959832, + "seen": 1791560671.8564537, + "ast_hash": "4edb8f009937a4d52ae4355c15950797", + "semantic_hash": "" + }, + "admin_panel/views/finance.py": { + "mtime": 1791557914.4702559, + "seen": 1791560671.8564537, + "ast_hash": "6d192f725bec56cac50f8ab1a3f7529a", + "semantic_hash": "" + }, + "admin_panel/views/store.py": { + "mtime": 1791557842.9065113, + "seen": 1791560671.8564537, + "ast_hash": "9251d125483e761d60b48f35b7590066", + "semantic_hash": "" + }, + "project_tree.py": { + "mtime": 1788860248.9085681, + "seen": 1791560671.8564537, + "ast_hash": "5f724e9f14716fca7b24028e2870d908", + "semantic_hash": "" + }, + "tests/__init__.py": { + "mtime": 1791558387.357916, + "seen": 1791560671.8564537, + "ast_hash": "d41d8cd98f00b204e9800998ecf8427e", + "semantic_hash": "" + }, + "tests/factories.py": { + "mtime": 1791558395.0672476, + "seen": 1791560671.8564537, + "ast_hash": "50fd151eba01ea60af0eca0412c6769c", + "semantic_hash": "" + }, + "tests/test_customers.py": { + "mtime": 1791558470.3088942, + "seen": 1791560671.8564537, + "ast_hash": "59649733efa1edadc23835a27f68bbba", + "semantic_hash": "" + }, + "tests/test_factors.py": { + "mtime": 1791558462.1194556, + "seen": 1791560671.8564537, + "ast_hash": "ec158132252e97776e2e1098b88ef5b3", + "semantic_hash": "" + }, + "tests/test_inventory.py": { + "mtime": 1791558442.1228235, + "seen": 1791560671.8564537, + "ast_hash": "01a6a30ee6b8c47211a19be742ca6e57", + "semantic_hash": "" + }, + "tests/test_models_contract.py": { + "mtime": 1791558945.8619733, + "seen": 1791560671.8564537, + "ast_hash": "55662ec48c0ef4b683a87b94808b91b0", + "semantic_hash": "" + }, + "tests/test_urls_contract.py": { + "mtime": 1791558427.424032, + "seen": 1791560671.8564537, + "ast_hash": "92e82e427a129cb2dc34081ccce03608", + "semantic_hash": "" + }, + "tests/test_view_smoke.py": { + "mtime": 1791559007.5000172, + "seen": 1791560671.8564537, + "ast_hash": "a30a1573fc25983708d76dff467c0589", + "semantic_hash": "" + }, + "AGENTS.md": { + "mtime": 1790174394.377987, + "seen": 1791560671.8564537, + "ast_hash": "fd3d80476af7b970d0c7007f131bf2e3", + "semantic_hash": "" + }, + "ripwire - README.md": { + "mtime": 1791555059.076961, + "seen": 1791560671.8564537, + "ast_hash": "5dae5881aaca660a070b4305e10ac7a3", + "semantic_hash": "" + } +} \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html index c84b4bb..f871946 100644 --- a/graphify-out/graph.html +++ b/graphify-out/graph.html @@ -63,12 +63,12 @@
-