[ { "label": "django.db.models.deletion", "kind": 6, "isExtraImport": true, "importPath": "django.db.models.deletion", "description": "django.db.models.deletion", "detail": "django.db.models.deletion", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "migrations", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "models", "importPath": "django.db", "description": "django.db", "isExtraImport": true, "detail": "django.db", "documentation": {} }, { "label": "admin", "importPath": "django.contrib", "description": "django.contrib", "isExtraImport": true, "detail": "django.contrib", "documentation": {} }, { "label": "admin", "importPath": "django.contrib", "description": "django.contrib", "isExtraImport": true, "detail": "django.contrib", "documentation": {} }, { "label": "admin", "importPath": "django.contrib", "description": "django.contrib", "isExtraImport": true, "detail": "django.contrib", "documentation": {} }, { "label": "admin", "importPath": "django.contrib", "description": "django.contrib", "isExtraImport": true, "detail": "django.contrib", "documentation": {} }, { "label": "AppConfig", "importPath": "django.apps", "description": "django.apps", "isExtraImport": true, "detail": "django.apps", "documentation": {} }, { "label": "AppConfig", "importPath": "django.apps", "description": "django.apps", "isExtraImport": true, "detail": "django.apps", "documentation": {} }, { "label": "AppConfig", "importPath": "django.apps", "description": "django.apps", "isExtraImport": true, "detail": "django.apps", "documentation": {} }, { "label": "json", "kind": 6, "isExtraImport": true, "importPath": "json", "description": "json", "detail": "json", "documentation": {} }, { "label": "routers", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "serializers", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "viewsets", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "status", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "routers", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "serializers", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "viewsets", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "serializers", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "viewsets", "importPath": "rest_framework", "description": "rest_framework", "isExtraImport": true, "detail": "rest_framework", "documentation": {} }, { "label": "logging", "kind": 6, "isExtraImport": true, "importPath": "logging", "description": "logging", "detail": "logging", "documentation": {} }, { "label": "TestCase", "importPath": "django.test", "description": "django.test", "isExtraImport": true, "detail": "django.test", "documentation": {} }, { "label": "TestCase", "importPath": "django.test", "description": "django.test", "isExtraImport": true, "detail": "django.test", "documentation": {} }, { "label": "TestCase", "importPath": "django.test", "description": "django.test", "isExtraImport": true, "detail": "django.test", "documentation": {} }, { "label": "io", "kind": 6, "isExtraImport": true, "importPath": "io", "description": "io", "detail": "io", "documentation": {} }, { "label": "base64", "kind": 6, "isExtraImport": true, "importPath": "base64", "description": "base64", "detail": "base64", "documentation": {} }, { "label": "cv2", "kind": 6, "isExtraImport": true, "importPath": "cv2", "description": "cv2", "detail": "cv2", "documentation": {} }, { "label": "numpy", "kind": 6, "isExtraImport": true, "importPath": "numpy", "description": "numpy", "detail": "numpy", "documentation": {} }, { "label": "JSONParser", "importPath": "rest_framework.parsers", "description": "rest_framework.parsers", "isExtraImport": true, "detail": "rest_framework.parsers", "documentation": {} }, { "label": "MultiPartParser", "importPath": "rest_framework.parsers", "description": "rest_framework.parsers", "isExtraImport": true, "detail": "rest_framework.parsers", "documentation": {} }, { "label": "APIView", "importPath": "rest_framework.views", "description": "rest_framework.views", "isExtraImport": true, "detail": "rest_framework.views", "documentation": {} }, { "label": "JsonResponse", "importPath": "django.http", "description": "django.http", "isExtraImport": true, "detail": "django.http", "documentation": {} }, { "label": "get_object_or_404", "importPath": "django.shortcuts", "description": "django.shortcuts", "isExtraImport": true, "detail": "django.shortcuts", "documentation": {} }, { "label": "render", "importPath": "django.shortcuts", "description": "django.shortcuts", "isExtraImport": true, "detail": "django.shortcuts", "documentation": {} }, { "label": "parse_image", "importPath": "api.tracer", "description": "api.tracer", "isExtraImport": true, "detail": "api.tracer", "documentation": {} }, { "label": "read_image", "importPath": "api.tracer", "description": "api.tracer", "isExtraImport": true, "detail": "api.tracer", "documentation": {} }, { "label": "numpy_zip_str_to_arr", "importPath": "api.tracer", "description": "api.tracer", "isExtraImport": true, "detail": "api.tracer", "documentation": {} }, { "label": "os", "kind": 6, "isExtraImport": true, "importPath": "os", "description": "os", "detail": "os", "documentation": {} }, { "label": "get_asgi_application", "importPath": "django.core.asgi", "description": "django.core.asgi", "isExtraImport": true, "detail": "django.core.asgi", "documentation": {} }, { "label": "Path", "importPath": "pathlib", "description": "pathlib", "isExtraImport": true, "detail": "pathlib", "documentation": {} }, { "label": "load_dotenv", "importPath": "dotenv", "description": "dotenv", "isExtraImport": true, "detail": "dotenv", "documentation": {} }, { "label": "include", "importPath": "django.urls", "description": "django.urls", "isExtraImport": true, "detail": "django.urls", "documentation": {} }, { "label": "path", "importPath": "django.urls", "description": "django.urls", "isExtraImport": true, "detail": "django.urls", "documentation": {} }, { "label": "static", "importPath": "django.conf.urls.static", "description": "django.conf.urls.static", "isExtraImport": true, "detail": "django.conf.urls.static", "documentation": {} }, { "label": "csrf_exempt", "importPath": "django.views.decorators.csrf", "description": "django.views.decorators.csrf", "isExtraImport": true, "detail": "django.views.decorators.csrf", "documentation": {} }, { "label": "views", "importPath": "api", "description": "api", "isExtraImport": true, "detail": "api", "documentation": {} }, { "label": "views", "importPath": "frontImages", "description": "frontImages", "isExtraImport": true, "detail": "frontImages", "documentation": {} }, { "label": "views", "importPath": "object", "description": "object", "isExtraImport": true, "detail": "object", "documentation": {} }, { "label": "get_wsgi_application", "importPath": "django.core.wsgi", "description": "django.core.wsgi", "isExtraImport": true, "detail": "django.core.wsgi", "documentation": {} }, { "label": "frontImages.models", "kind": 6, "isExtraImport": true, "importPath": "frontImages.models", "description": "frontImages.models", "detail": "frontImages.models", "documentation": {} }, { "label": "django.core.validators", "kind": 6, "isExtraImport": true, "importPath": "django.core.validators", "description": "django.core.validators", "detail": "django.core.validators", "documentation": {} }, { "label": "MinValueValidator", "importPath": "django.core.validators", "description": "django.core.validators", "isExtraImport": true, "detail": "django.core.validators", "documentation": {} }, { "label": "MaxValueValidator", "importPath": "django.core.validators", "description": "django.core.validators", "isExtraImport": true, "detail": "django.core.validators", "documentation": {} }, { "label": "object.models", "kind": 6, "isExtraImport": true, "importPath": "object.models", "description": "object.models", "detail": "object.models", "documentation": {} }, { "label": "Image", "importPath": "PIL", "description": "PIL", "isExtraImport": true, "detail": "PIL", "documentation": {} }, { "label": "ValidationError", "importPath": "django.core.exceptions", "description": "django.core.exceptions", "isExtraImport": true, "detail": "django.core.exceptions", "documentation": {} }, { "label": "django_filters", "kind": 6, "isExtraImport": true, "importPath": "django_filters", "description": "django_filters", "detail": "django_filters", "documentation": {} }, { "label": "sys", "kind": 6, "isExtraImport": true, "importPath": "sys", "description": "sys", "detail": "sys", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.api.migrations.0001_initial", "description": "back.api.migrations.0001_initial", "peekOfCode": "class Migration(migrations.Migration):\n initial = True\n dependencies = [\n ]\n operations = [\n migrations.CreateModel(\n name='Floorplan',\n fields=[\n ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),\n ('title', models.CharField(max_length=200)),", "detail": "back.api.migrations.0001_initial", "documentation": {} }, { "label": "ApiConfig", "kind": 6, "importPath": "back.api.apps", "description": "back.api.apps", "peekOfCode": "class ApiConfig(AppConfig):\n default_auto_field = 'django.db.models.BigAutoField'\n name = 'api'", "detail": "back.api.apps", "documentation": {} }, { "label": "Product", "kind": 6, "importPath": "back.api.models", "description": "back.api.models", "peekOfCode": "class Product(models.Model):\n title = models.CharField(max_length=100)\n description = models.TextField(default=None, null=True)\n model3d = models.FileField(default=None, blank=True, null=True, upload_to=\"files\")\n image1 = models.ImageField(default=None, blank=True, null=True, upload_to=\"files\")\n image2 = models.ImageField(default=None, blank=True, null=True, upload_to=\"files\")\n image3 = models.ImageField(default=None, blank=True, null=True, upload_to=\"files\")\n def __str__(self):\n return self.title\nclass Floorplan(models.Model):", "detail": "back.api.models", "documentation": {} }, { "label": "Floorplan", "kind": 6, "importPath": "back.api.models", "description": "back.api.models", "peekOfCode": "class Floorplan(models.Model):\n title = models.CharField(max_length=200)\n np_field = models.TextField()\n d_size = models.IntegerField(null=True, blank=True)\n d_border = models.IntegerField(null=True, blank=True)\n paths = models.TextField()\nclass FloorplanPoints(models.Model):\n plan = models.OneToOneField(Floorplan, on_delete=models.CASCADE, primary_key=True)\n points = models.JSONField()", "detail": "back.api.models", "documentation": {} }, { "label": "FloorplanPoints", "kind": 6, "importPath": "back.api.models", "description": "back.api.models", "peekOfCode": "class FloorplanPoints(models.Model):\n plan = models.OneToOneField(Floorplan, on_delete=models.CASCADE, primary_key=True)\n points = models.JSONField()", "detail": "back.api.models", "documentation": {} }, { "label": "ProductSerializer", "kind": 6, "importPath": "back.api.serializers", "description": "back.api.serializers", "peekOfCode": "class ProductSerializer(serializers.HyperlinkedModelSerializer):\n class Meta:\n model = Product\n fields = [\n \"id\",\n \"title\",\n \"description\",\n \"model3d\",\n \"image1\",\n \"image2\",", "detail": "back.api.serializers", "documentation": {} }, { "label": "FloorplanSerializer", "kind": 6, "importPath": "back.api.serializers", "description": "back.api.serializers", "peekOfCode": "class FloorplanSerializer(serializers.ModelSerializer):\n class Meta:\n model = Floorplan\n fields = [\n \"id\",\n \"title\",\n \"np_field\",\n \"d_border\",\n \"d_size\",\n \"paths\",", "detail": "back.api.serializers", "documentation": {} }, { "label": "FloorplanListSerializer", "kind": 6, "importPath": "back.api.serializers", "description": "back.api.serializers", "peekOfCode": "class FloorplanListSerializer(serializers.ModelSerializer):\n class Meta:\n model = Floorplan\n fields = [\n \"id\",\n \"title\",\n ]\nclass FloorplanPointsSerializer(serializers.ModelSerializer):\n class Meta:\n model = FloorplanPoints", "detail": "back.api.serializers", "documentation": {} }, { "label": "FloorplanPointsSerializer", "kind": 6, "importPath": "back.api.serializers", "description": "back.api.serializers", "peekOfCode": "class FloorplanPointsSerializer(serializers.ModelSerializer):\n class Meta:\n model = FloorplanPoints\n fields = [\n \"points\",\n \"plan\",\n ]", "detail": "back.api.serializers", "documentation": {} }, { "label": "logger", "kind": 5, "importPath": "back.api.serializers", "description": "back.api.serializers", "peekOfCode": "logger = logging.getLogger(\"root\")\nclass ProductSerializer(serializers.HyperlinkedModelSerializer):\n class Meta:\n model = Product\n fields = [\n \"id\",\n \"title\",\n \"description\",\n \"model3d\",\n \"image1\",", "detail": "back.api.serializers", "documentation": {} }, { "label": "numpy_arr_to_zip_str", "kind": 2, "importPath": "back.api.tracer", "description": "back.api.tracer", "peekOfCode": "def numpy_arr_to_zip_str(arr):\n f = io.BytesIO()\n np.savez_compressed(f, arr=arr)\n return base64.b64encode(f.getvalue())\ndef numpy_zip_str_to_arr(zip_str):\n f = io.BytesIO(base64.b64decode(zip_str))\n return np.load(f)['arr'].tolist()\ndef read_image(content: bytes) -> np.ndarray:\n \"\"\"\n Image bytes to OpenCV image", "detail": "back.api.tracer", "documentation": {} }, { "label": "numpy_zip_str_to_arr", "kind": 2, "importPath": "back.api.tracer", "description": "back.api.tracer", "peekOfCode": "def numpy_zip_str_to_arr(zip_str):\n f = io.BytesIO(base64.b64decode(zip_str))\n return np.load(f)['arr'].tolist()\ndef read_image(content: bytes) -> np.ndarray:\n \"\"\"\n Image bytes to OpenCV image\n :param content: Image bytes\n :returns OpenCV image\n :raises TypeError: If content is not bytes\n :raises ValueError: If content does not represent an image", "detail": "back.api.tracer", "documentation": {} }, { "label": "read_image", "kind": 2, "importPath": "back.api.tracer", "description": "back.api.tracer", "peekOfCode": "def read_image(content: bytes) -> np.ndarray:\n \"\"\"\n Image bytes to OpenCV image\n :param content: Image bytes\n :returns OpenCV image\n :raises TypeError: If content is not bytes\n :raises ValueError: If content does not represent an image\n \"\"\"\n if not isinstance(content, bytes):\n raise TypeError(f\"Expected 'content' to be bytes, received: {type(content)}\")", "detail": "back.api.tracer", "documentation": {} }, { "label": "parse_image", "kind": 2, "importPath": "back.api.tracer", "description": "back.api.tracer", "peekOfCode": "def parse_image(img):\n (img_h, img_w) = img.shape[:2]\n t = 1920\n w = t\n h = int((img_h / img_w) * t)\n img = cv2.resize(img, (w, h))\n gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n gray = 255 - gray\n gray = cv2.threshold(gray, 250, 255, cv2.THRESH_BINARY)[1]\n gray = cv2.blur(gray, (10, 5))", "detail": "back.api.tracer", "documentation": {} }, { "label": "Products", "kind": 6, "importPath": "back.api.views", "description": "back.api.views", "peekOfCode": "class Products(APIView):\n def get(self, request):\n tasks = Product.objects.all()\n serializer = ProductSerializer(tasks, many=True)\n return JsonResponse(serializer.data, safe=False)\n def post(self, request):\n data = JSONParser().parse(request)\n serializer = ProductSerializer(data=data)\n if serializer.is_valid():\n serializer.save()", "detail": "back.api.views", "documentation": {} }, { "label": "FloorplanView", "kind": 6, "importPath": "back.api.views", "description": "back.api.views", "peekOfCode": "class FloorplanView(APIView):\n parser_classes = (\n MultiPartParser,\n JSONParser,\n )\n def post(self, request):\n try:\n file = request.FILES[\"demo\"]\n logger.info(file.__dict__)\n res = parse_image(read_image(file.read()))", "detail": "back.api.views", "documentation": {} }, { "label": "FloorplanPointsView", "kind": 6, "importPath": "back.api.views", "description": "back.api.views", "peekOfCode": "class FloorplanPointsView(APIView):\n def get(self, request, id):\n if FloorplanPoints.objects.filter(plan=id).exists():\n points = FloorplanPoints.objects.get(plan=id)\n serializer = FloorplanPointsSerializer(points, many=False)\n return JsonResponse(serializer.data, safe=False)\n else:\n return JsonResponse(\n \"No item\", safe=False, status=status.HTTP_400_BAD_REQUEST\n )", "detail": "back.api.views", "documentation": {} }, { "label": "logger", "kind": 5, "importPath": "back.api.views", "description": "back.api.views", "peekOfCode": "logger = logging.getLogger(\"root\")\nclass Products(APIView):\n def get(self, request):\n tasks = Product.objects.all()\n serializer = ProductSerializer(tasks, many=True)\n return JsonResponse(serializer.data, safe=False)\n def post(self, request):\n data = JSONParser().parse(request)\n serializer = ProductSerializer(data=data)\n if serializer.is_valid():", "detail": "back.api.views", "documentation": {} }, { "label": "application", "kind": 5, "importPath": "back.back.asgi", "description": "back.back.asgi", "peekOfCode": "application = get_asgi_application()", "detail": "back.back.asgi", "documentation": {} }, { "label": "BASE_DIR", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "BASE_DIR = Path(__file__).resolve().parent.parent\n# Quick-start development settings - unsuitable for production\n# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/\n# SECURITY WARNING: keep the secret key used in production secret!\nSECRET_KEY = \"django-insecure-ly8rk@zb&ne*-063&q-=81!d@8q0hh4$&q!_7mtqc81(rlejqd\"\n# SECURITY WARNING: don't run with debug turned on in production!\nDEBUG = True\nALLOWED_HOSTS = [\n \"localhost\",\n \"localhost:8000\",", "detail": "back.back.settings", "documentation": {} }, { "label": "SECRET_KEY", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "SECRET_KEY = \"django-insecure-ly8rk@zb&ne*-063&q-=81!d@8q0hh4$&q!_7mtqc81(rlejqd\"\n# SECURITY WARNING: don't run with debug turned on in production!\nDEBUG = True\nALLOWED_HOSTS = [\n \"localhost\",\n \"localhost:8000\",\n \"127.0.0.1\",\n \"127.0.0.1:8000\",\n \"192.168.103.159\",\n \"192.168.103.159:8000\",", "detail": "back.back.settings", "documentation": {} }, { "label": "DEBUG", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "DEBUG = True\nALLOWED_HOSTS = [\n \"localhost\",\n \"localhost:8000\",\n \"127.0.0.1\",\n \"127.0.0.1:8000\",\n \"192.168.103.159\",\n \"192.168.103.159:8000\",\n \"back\",\n \"back:8000\",", "detail": "back.back.settings", "documentation": {} }, { "label": "ALLOWED_HOSTS", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "ALLOWED_HOSTS = [\n \"localhost\",\n \"localhost:8000\",\n \"127.0.0.1\",\n \"127.0.0.1:8000\",\n \"192.168.103.159\",\n \"192.168.103.159:8000\",\n \"back\",\n \"back:8000\",\n \"demo.kustarshina.ru\",", "detail": "back.back.settings", "documentation": {} }, { "label": "CSRF_TRUSTED_ORIGINS", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "CSRF_TRUSTED_ORIGINS = (\n \"https://demo.kustarshina.ru\",\n \"http://localhost\",\n \"http://localhost:3011\",\n \"http://localhost:4173\",\n \"http://localhost:5173\",\n \"http://192.168.103.159:3011\",\n \"http://192.168.103.159\",\n)\nCORS_ORIGIN_ALLOW_ALL = False", "detail": "back.back.settings", "documentation": {} }, { "label": "CORS_ORIGIN_ALLOW_ALL", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "CORS_ORIGIN_ALLOW_ALL = False\nCORS_ORIGIN_WHITELIST = [\n \"null\",\n \"http://localhost\",\n \"http://localhost:3011\",\n \"http://localhost:4173\",\n \"http://localhost:5173\",\n \"http://localhost:8000\",\n \"http://192.168.103.159:3011\",\n \"http://127.0.0.1\",", "detail": "back.back.settings", "documentation": {} }, { "label": "CORS_ORIGIN_WHITELIST", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "CORS_ORIGIN_WHITELIST = [\n \"null\",\n \"http://localhost\",\n \"http://localhost:3011\",\n \"http://localhost:4173\",\n \"http://localhost:5173\",\n \"http://localhost:8000\",\n \"http://192.168.103.159:3011\",\n \"http://127.0.0.1\",\n \"http://192.168.103.159\",", "detail": "back.back.settings", "documentation": {} }, { "label": "INSTALLED_APPS", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "INSTALLED_APPS = [\n \"django.contrib.admin\",\n \"django.contrib.auth\",\n \"django.contrib.contenttypes\",\n \"django.contrib.sessions\",\n \"django.contrib.messages\",\n \"django.contrib.staticfiles\",\n \"corsheaders\",\n \"django_filters\",\n 'django_extensions',", "detail": "back.back.settings", "documentation": {} }, { "label": "MIDDLEWARE", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "MIDDLEWARE = [\n \"django.middleware.security.SecurityMiddleware\",\n \"django.contrib.sessions.middleware.SessionMiddleware\",\n \"django.middleware.common.CommonMiddleware\",\n \"corsheaders.middleware.CorsMiddleware\",\n \"django.middleware.csrf.CsrfViewMiddleware\",\n \"django.contrib.auth.middleware.AuthenticationMiddleware\",\n \"django.contrib.messages.middleware.MessageMiddleware\",\n \"django.middleware.clickjacking.XFrameOptionsMiddleware\",\n]", "detail": "back.back.settings", "documentation": {} }, { "label": "ROOT_URLCONF", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "ROOT_URLCONF = \"back.urls\"\nTEMPLATES = [\n {\n \"BACKEND\": \"django.template.backends.django.DjangoTemplates\",\n \"DIRS\": [],\n \"APP_DIRS\": True,\n \"OPTIONS\": {\n \"context_processors\": [\n \"django.template.context_processors.debug\",\n \"django.template.context_processors.request\",", "detail": "back.back.settings", "documentation": {} }, { "label": "TEMPLATES", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "TEMPLATES = [\n {\n \"BACKEND\": \"django.template.backends.django.DjangoTemplates\",\n \"DIRS\": [],\n \"APP_DIRS\": True,\n \"OPTIONS\": {\n \"context_processors\": [\n \"django.template.context_processors.debug\",\n \"django.template.context_processors.request\",\n \"django.contrib.auth.context_processors.auth\",", "detail": "back.back.settings", "documentation": {} }, { "label": "WSGI_APPLICATION", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "WSGI_APPLICATION = \"back.wsgi.application\"\n# Database\n# https://docs.djangoproject.com/en/5.0/ref/settings/#databases\nDATABASES = {\n \"default\": {\n \"ENGINE\": \"django.db.backends.postgresql_psycopg2\", # change engine to this\n \"NAME\": \"interactive_table\", # db name you created above\n \"HOST\": os.getenv(\"DB_HOST\"), # usually localhost\n \"USER\": os.getenv(\"DB_USER\"), # db user you created above or postgres default\n \"PASSWORD\": os.getenv(", "detail": "back.back.settings", "documentation": {} }, { "label": "DATABASES", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "DATABASES = {\n \"default\": {\n \"ENGINE\": \"django.db.backends.postgresql_psycopg2\", # change engine to this\n \"NAME\": \"interactive_table\", # db name you created above\n \"HOST\": os.getenv(\"DB_HOST\"), # usually localhost\n \"USER\": os.getenv(\"DB_USER\"), # db user you created above or postgres default\n \"PASSWORD\": os.getenv(\n \"DB_PASSWORD\"\n ), # db password you created above or postgres\n \"PORT\": os.getenv(\"DB_PORT\"), # usually 5432", "detail": "back.back.settings", "documentation": {} }, { "label": "AUTH_PASSWORD_VALIDATORS", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "AUTH_PASSWORD_VALIDATORS = [\n {\n \"NAME\": \"django.contrib.auth.password_validation.UserAttributeSimilarityValidator\",\n },\n {\n \"NAME\": \"django.contrib.auth.password_validation.MinimumLengthValidator\",\n },\n {\n \"NAME\": \"django.contrib.auth.password_validation.CommonPasswordValidator\",\n },", "detail": "back.back.settings", "documentation": {} }, { "label": "LANGUAGE_CODE", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "LANGUAGE_CODE = \"en-us\"\nTIME_ZONE = \"UTC\"\nUSE_I18N = True\nUSE_TZ = True\n# Static files (CSS, JavaScript, Images)\n# https://docs.djangoproject.com/en/5.0/howto/static-files/\nSTATIC_URL = \"static/\"\n# Default primary key field type\n# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field\nREST_FRAMEWORK = {", "detail": "back.back.settings", "documentation": {} }, { "label": "TIME_ZONE", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "TIME_ZONE = \"UTC\"\nUSE_I18N = True\nUSE_TZ = True\n# Static files (CSS, JavaScript, Images)\n# https://docs.djangoproject.com/en/5.0/howto/static-files/\nSTATIC_URL = \"static/\"\n# Default primary key field type\n# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field\nREST_FRAMEWORK = {\n 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']", "detail": "back.back.settings", "documentation": {} }, { "label": "USE_I18N", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "USE_I18N = True\nUSE_TZ = True\n# Static files (CSS, JavaScript, Images)\n# https://docs.djangoproject.com/en/5.0/howto/static-files/\nSTATIC_URL = \"static/\"\n# Default primary key field type\n# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field\nREST_FRAMEWORK = {\n 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']\n}", "detail": "back.back.settings", "documentation": {} }, { "label": "USE_TZ", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "USE_TZ = True\n# Static files (CSS, JavaScript, Images)\n# https://docs.djangoproject.com/en/5.0/howto/static-files/\nSTATIC_URL = \"static/\"\n# Default primary key field type\n# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field\nREST_FRAMEWORK = {\n 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']\n}\nCRISPY_ALLOWED_TEMPLATE_PACKS = \"bootstrap4\"", "detail": "back.back.settings", "documentation": {} }, { "label": "STATIC_URL", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "STATIC_URL = \"static/\"\n# Default primary key field type\n# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field\nREST_FRAMEWORK = {\n 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']\n}\nCRISPY_ALLOWED_TEMPLATE_PACKS = \"bootstrap4\"\nCRISPY_TEMPLATE_PACK = \"bootstrap4\"\nDEFAULT_AUTO_FIELD = \"django.db.models.BigAutoField\"\nLOGGING = {", "detail": "back.back.settings", "documentation": {} }, { "label": "REST_FRAMEWORK", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "REST_FRAMEWORK = {\n 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']\n}\nCRISPY_ALLOWED_TEMPLATE_PACKS = \"bootstrap4\"\nCRISPY_TEMPLATE_PACK = \"bootstrap4\"\nDEFAULT_AUTO_FIELD = \"django.db.models.BigAutoField\"\nLOGGING = {\n \"version\": 1,\n \"disable_existing_loggers\": False,\n \"formatters\": {", "detail": "back.back.settings", "documentation": {} }, { "label": "CRISPY_ALLOWED_TEMPLATE_PACKS", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "CRISPY_ALLOWED_TEMPLATE_PACKS = \"bootstrap4\"\nCRISPY_TEMPLATE_PACK = \"bootstrap4\"\nDEFAULT_AUTO_FIELD = \"django.db.models.BigAutoField\"\nLOGGING = {\n \"version\": 1,\n \"disable_existing_loggers\": False,\n \"formatters\": {\n \"verbose\": {\n \"format\": \"{levelname} {asctime} {module} {process:d} {thread:d} {message}\",\n \"style\": \"{\",", "detail": "back.back.settings", "documentation": {} }, { "label": "CRISPY_TEMPLATE_PACK", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "CRISPY_TEMPLATE_PACK = \"bootstrap4\"\nDEFAULT_AUTO_FIELD = \"django.db.models.BigAutoField\"\nLOGGING = {\n \"version\": 1,\n \"disable_existing_loggers\": False,\n \"formatters\": {\n \"verbose\": {\n \"format\": \"{levelname} {asctime} {module} {process:d} {thread:d} {message}\",\n \"style\": \"{\",\n },", "detail": "back.back.settings", "documentation": {} }, { "label": "DEFAULT_AUTO_FIELD", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "DEFAULT_AUTO_FIELD = \"django.db.models.BigAutoField\"\nLOGGING = {\n \"version\": 1,\n \"disable_existing_loggers\": False,\n \"formatters\": {\n \"verbose\": {\n \"format\": \"{levelname} {asctime} {module} {process:d} {thread:d} {message}\",\n \"style\": \"{\",\n },\n \"large\": {", "detail": "back.back.settings", "documentation": {} }, { "label": "LOGGING", "kind": 5, "importPath": "back.back.settings", "description": "back.back.settings", "peekOfCode": "LOGGING = {\n \"version\": 1,\n \"disable_existing_loggers\": False,\n \"formatters\": {\n \"verbose\": {\n \"format\": \"{levelname} {asctime} {module} {process:d} {thread:d} {message}\",\n \"style\": \"{\",\n },\n \"large\": {\n \"format\": \"%(asctime)s %(levelname)s %(process)d %(filename)s:%(lineno)d \"", "detail": "back.back.settings", "documentation": {} }, { "label": "router", "kind": 5, "importPath": "back.back.urls", "description": "back.back.urls", "peekOfCode": "router = routers.DefaultRouter()\nrouter.register(r'api/front_img', frontimg_views.ImageViewSet)\nrouter.register(r'api/obj/scene', object_views.Scene3DViewSet)\nrouter.register(r'api/obj/element', object_views.Element3DViewSet)\nrouter.register(r'api/obj/clickable', object_views.ClickableAreaViewSet)\nurlpatterns = [\n path('', include(router.urls)),\n path(\"admin/\", admin.site.urls),\n path(\"api/products\", csrf_exempt(views.Products.as_view())),\n path(\"api/floorplan/\", csrf_exempt(views.FloorplanView.as_view())),", "detail": "back.back.urls", "documentation": {} }, { "label": "urlpatterns", "kind": 5, "importPath": "back.back.urls", "description": "back.back.urls", "peekOfCode": "urlpatterns = [\n path('', include(router.urls)),\n path(\"admin/\", admin.site.urls),\n path(\"api/products\", csrf_exempt(views.Products.as_view())),\n path(\"api/floorplan/\", csrf_exempt(views.FloorplanView.as_view())),\n path(\"api/floorplan/\", csrf_exempt(views.FloorplanView.as_view())),\n path(\"api/floorplan//points\", csrf_exempt(views.FloorplanPointsView.as_view())),\n] + static('/files', document_root='files')", "detail": "back.back.urls", "documentation": {} }, { "label": "application", "kind": 5, "importPath": "back.back.wsgi", "description": "back.back.wsgi", "peekOfCode": "application = get_wsgi_application()", "detail": "back.back.wsgi", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.frontImages.migrations.0001_initial", "description": "back.frontImages.migrations.0001_initial", "peekOfCode": "class Migration(migrations.Migration):\n initial = True\n dependencies = [\n ]\n operations = [\n migrations.CreateModel(\n name='Image',\n fields=[\n ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),\n ('file', models.ImageField(upload_to=frontImages.models.group_based_upload_to)),", "detail": "back.frontImages.migrations.0001_initial", "documentation": {} }, { "label": "FrontimagesConfig", "kind": 6, "importPath": "back.frontImages.apps", "description": "back.frontImages.apps", "peekOfCode": "class FrontimagesConfig(AppConfig):\n default_auto_field = 'django.db.models.BigAutoField'\n name = 'frontImages'", "detail": "back.frontImages.apps", "documentation": {} }, { "label": "Image", "kind": 6, "importPath": "back.frontImages.models", "description": "back.frontImages.models", "peekOfCode": "class Image(models.Model):\n file = models.ImageField(upload_to=group_based_upload_to)\n alt = models.CharField(max_length=255)\n title = models.CharField(max_length=255)\n def __str__(self):\n return self.title", "detail": "back.frontImages.models", "documentation": {} }, { "label": "group_based_upload_to", "kind": 2, "importPath": "back.frontImages.models", "description": "back.frontImages.models", "peekOfCode": "def group_based_upload_to(instance, filename):\n logger.info(instance)\n return \"files/image/{}/{}/{}\".format(\n type(instance).__name__.lower(), instance.id, filename\n )\nclass Image(models.Model):\n file = models.ImageField(upload_to=group_based_upload_to)\n alt = models.CharField(max_length=255)\n title = models.CharField(max_length=255)\n def __str__(self):", "detail": "back.frontImages.models", "documentation": {} }, { "label": "logger", "kind": 5, "importPath": "back.frontImages.models", "description": "back.frontImages.models", "peekOfCode": "logger = logging.getLogger(\"root\")\ndef group_based_upload_to(instance, filename):\n logger.info(instance)\n return \"files/image/{}/{}/{}\".format(\n type(instance).__name__.lower(), instance.id, filename\n )\nclass Image(models.Model):\n file = models.ImageField(upload_to=group_based_upload_to)\n alt = models.CharField(max_length=255)\n title = models.CharField(max_length=255)", "detail": "back.frontImages.models", "documentation": {} }, { "label": "ImageSerializer", "kind": 6, "importPath": "back.frontImages.serializers", "description": "back.frontImages.serializers", "peekOfCode": "class ImageSerializer(serializers.ModelSerializer):\n file = serializers.ImageField(use_url=False)\n class Meta:\n model = Image\n fields = \"__all__\"", "detail": "back.frontImages.serializers", "documentation": {} }, { "label": "ImageViewSet", "kind": 6, "importPath": "back.frontImages.views", "description": "back.frontImages.views", "peekOfCode": "class ImageViewSet(viewsets.ModelViewSet):\n queryset = Image.objects.all()\n serializer_class = ImageSerializer", "detail": "back.frontImages.views", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.object.migrations.0001_initial", "description": "back.object.migrations.0001_initial", "peekOfCode": "class Migration(migrations.Migration):\n initial = True\n dependencies = [\n ]\n operations = [\n migrations.CreateModel(\n name='Element3D',\n fields=[\n ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),\n ('model_file', models.FileField(upload_to=object.models.group_based_upload_to)),", "detail": "back.object.migrations.0001_initial", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.object.migrations.0002_scene3d_gainmap_scene3d_json_scene3d_webp", "description": "back.object.migrations.0002_scene3d_gainmap_scene3d_json_scene3d_webp", "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0001_initial'),\n ]\n operations = [\n migrations.AddField(\n model_name='scene3d',\n name='gainmap',\n field=models.IntegerField(default=1),\n preserve_default=False,", "detail": "back.object.migrations.0002_scene3d_gainmap_scene3d_json_scene3d_webp", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.object.migrations.0003_remove_scene3d_gainmap_remove_scene3d_json_and_more", "description": "back.object.migrations.0003_remove_scene3d_gainmap_remove_scene3d_json_and_more", "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0002_scene3d_gainmap_scene3d_json_scene3d_webp'),\n ]\n operations = [\n migrations.RemoveField(\n model_name='scene3d',\n name='gainmap',\n ),\n migrations.RemoveField(", "detail": "back.object.migrations.0003_remove_scene3d_gainmap_remove_scene3d_json_and_more", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.object.migrations.0004_scene3d_gainmap_scene3d_json_scene3d_webp", "description": "back.object.migrations.0004_scene3d_gainmap_scene3d_json_scene3d_webp", "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0003_remove_scene3d_gainmap_remove_scene3d_json_and_more'),\n ]\n operations = [\n migrations.AddField(\n model_name='scene3d',\n name='gainmap',\n field=models.IntegerField(default=1),\n preserve_default=False,", "detail": "back.object.migrations.0004_scene3d_gainmap_scene3d_json_scene3d_webp", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.object.migrations.0005_remove_scene3d_gainmap_remove_scene3d_json_and_more", "description": "back.object.migrations.0005_remove_scene3d_gainmap_remove_scene3d_json_and_more", "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0004_scene3d_gainmap_scene3d_json_scene3d_webp'),\n ]\n operations = [\n migrations.RemoveField(\n model_name='scene3d',\n name='gainmap',\n ),\n migrations.RemoveField(", "detail": "back.object.migrations.0005_remove_scene3d_gainmap_remove_scene3d_json_and_more", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.object.migrations.0006_element3d_can_disabled_element3d_is_enabled", "description": "back.object.migrations.0006_element3d_can_disabled_element3d_is_enabled", "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0005_remove_scene3d_gainmap_remove_scene3d_json_and_more'),\n ]\n operations = [\n migrations.AddField(\n model_name='element3d',\n name='can_disabled',\n field=models.BooleanField(default=False),\n ),", "detail": "back.object.migrations.0006_element3d_can_disabled_element3d_is_enabled", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.object.migrations.0007_alter_element3d_description", "description": "back.object.migrations.0007_alter_element3d_description", "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0006_element3d_can_disabled_element3d_is_enabled'),\n ]\n operations = [\n migrations.AlterField(\n model_name='element3d',\n name='description',\n field=models.TextField(blank=True, null=True),\n ),", "detail": "back.object.migrations.0007_alter_element3d_description", "documentation": {} }, { "label": "Migration", "kind": 6, "importPath": "back.object.migrations.0008_rename_can_disabled_element3d_can_not_disable", "description": "back.object.migrations.0008_rename_can_disabled_element3d_can_not_disable", "peekOfCode": "class Migration(migrations.Migration):\n dependencies = [\n ('object', '0007_alter_element3d_description'),\n ]\n operations = [\n migrations.RenameField(\n model_name='element3d',\n old_name='can_disabled',\n new_name='can_not_disable',\n ),", "detail": "back.object.migrations.0008_rename_can_disabled_element3d_can_not_disable", "documentation": {} }, { "label": "Scene3DAdmin", "kind": 6, "importPath": "back.object.admin", "description": "back.object.admin", "peekOfCode": "class Scene3DAdmin(admin.ModelAdmin):\n filter_horizontal = ('elements',)\nadmin.site.register(Scene3D, Scene3DAdmin)\nadmin.site.register(Element3D)\nadmin.site.register(ClickableArea)", "detail": "back.object.admin", "documentation": {} }, { "label": "ObjectConfig", "kind": 6, "importPath": "back.object.apps", "description": "back.object.apps", "peekOfCode": "class ObjectConfig(AppConfig):\n default_auto_field = 'django.db.models.BigAutoField'\n name = 'object'", "detail": "back.object.apps", "documentation": {} }, { "label": "Element3D", "kind": 6, "importPath": "back.object.models", "description": "back.object.models", "peekOfCode": "class Element3D(models.Model):\n parent = models.ForeignKey(\"self\", on_delete=models.PROTECT, blank=True, null=True)\n model_file = models.FileField(upload_to=group_based_upload_to)\n name = models.CharField(max_length=255)\n description = models.TextField(blank=True, null=True)\n is_enabled = models.BooleanField(default=True)\n can_not_disable = models.BooleanField(default=False)\n def __str__(self):\n return self.name\nclass Scene3D(models.Model):", "detail": "back.object.models", "documentation": {} }, { "label": "Scene3D", "kind": 6, "importPath": "back.object.models", "description": "back.object.models", "peekOfCode": "class Scene3D(models.Model):\n filter_horizontal = (\"elements\",)\n name = models.CharField(\n max_length=120,\n )\n elements = models.ManyToManyField(Element3D)\n min_distance = models.IntegerField(\n validators=[MinValueValidator(1), MaxValueValidator(600)], blank=True, null=True\n )\n max_distance = models.IntegerField(", "detail": "back.object.models", "documentation": {} }, { "label": "ClickableArea", "kind": 6, "importPath": "back.object.models", "description": "back.object.models", "peekOfCode": "class ClickableArea(models.Model):\n name = models.CharField(\"название\", max_length=255)\n description = models.TextField(\"описание\")\n object_name = models.CharField(\"название объекта\", max_length=255)\n target_name = models.CharField(\n max_length=200,\n blank=True,\n null=True,\n )\n target = models.ForeignKey(", "detail": "back.object.models", "documentation": {} }, { "label": "group_based_upload_to", "kind": 2, "importPath": "back.object.models", "description": "back.object.models", "peekOfCode": "def group_based_upload_to(instance, filename):\n logger.info(instance)\n return \"files/image/{}/{}/{}\".format(\n type(instance).__name__.lower(), instance.id, filename\n )\nclass Element3D(models.Model):\n parent = models.ForeignKey(\"self\", on_delete=models.PROTECT, blank=True, null=True)\n model_file = models.FileField(upload_to=group_based_upload_to)\n name = models.CharField(max_length=255)\n description = models.TextField(blank=True, null=True)", "detail": "back.object.models", "documentation": {} }, { "label": "maximum_size_validator", "kind": 2, "importPath": "back.object.models", "description": "back.object.models", "peekOfCode": "def maximum_size_validator(image):\n max_width = 512\n max_height = 512\n img = Image.open(image)\n fw, fh = img.size\n if fw > max_width or fh > max_height:\n raise ValidationError(\"Height or Width is larger than what is allowed\")\nclass ClickableArea(models.Model):\n name = models.CharField(\"название\", max_length=255)\n description = models.TextField(\"описание\")", "detail": "back.object.models", "documentation": {} }, { "label": "logger", "kind": 5, "importPath": "back.object.models", "description": "back.object.models", "peekOfCode": "logger = logging.getLogger(\"root\")\ndef group_based_upload_to(instance, filename):\n logger.info(instance)\n return \"files/image/{}/{}/{}\".format(\n type(instance).__name__.lower(), instance.id, filename\n )\nclass Element3D(models.Model):\n parent = models.ForeignKey(\"self\", on_delete=models.PROTECT, blank=True, null=True)\n model_file = models.FileField(upload_to=group_based_upload_to)\n name = models.CharField(max_length=255)", "detail": "back.object.models", "documentation": {} }, { "label": "Element3DSerializer", "kind": 6, "importPath": "back.object.serializers", "description": "back.object.serializers", "peekOfCode": "class Element3DSerializer(serializers.ModelSerializer):\n model_file = serializers.ImageField(use_url=False)\n class Meta:\n model = Element3D\n fields = \"__all__\"\nclass Scene3DSerializer(serializers.ModelSerializer):\n elements = Element3DSerializer(many=True)\n hdr_gainmap = serializers.FileField(use_url=False)\n hdr_json = serializers.FileField(use_url=False)\n hdr_webp = serializers.FileField(use_url=False)", "detail": "back.object.serializers", "documentation": {} }, { "label": "Scene3DSerializer", "kind": 6, "importPath": "back.object.serializers", "description": "back.object.serializers", "peekOfCode": "class Scene3DSerializer(serializers.ModelSerializer):\n elements = Element3DSerializer(many=True)\n hdr_gainmap = serializers.FileField(use_url=False)\n hdr_json = serializers.FileField(use_url=False)\n hdr_webp = serializers.FileField(use_url=False)\n class Meta:\n model = Scene3D\n fields = \"__all__\"\n depth = 2\nclass ClickableAreaSerializer(serializers.ModelSerializer):", "detail": "back.object.serializers", "documentation": {} }, { "label": "ClickableAreaSerializer", "kind": 6, "importPath": "back.object.serializers", "description": "back.object.serializers", "peekOfCode": "class ClickableAreaSerializer(serializers.ModelSerializer):\n image = serializers.ImageField(use_url=False)\n class Meta:\n model = ClickableArea\n fields = \"__all__\"", "detail": "back.object.serializers", "documentation": {} }, { "label": "NumberInFilter", "kind": 6, "importPath": "back.object.views", "description": "back.object.views", "peekOfCode": "class NumberInFilter(django_filters.BaseInFilter, django_filters.NumberFilter):\n pass\nclass ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\n filterset_fields = (\n \"source\",\n \"object_name\",\n )\nclass Scene3DViewSet(viewsets.ModelViewSet):", "detail": "back.object.views", "documentation": {} }, { "label": "ClickableAreaViewSet", "kind": 6, "importPath": "back.object.views", "description": "back.object.views", "peekOfCode": "class ClickableAreaViewSet(viewsets.ModelViewSet):\n queryset = ClickableArea.objects.all()\n serializer_class = ClickableAreaSerializer\n filterset_fields = (\n \"source\",\n \"object_name\",\n )\nclass Scene3DViewSet(viewsets.ModelViewSet):\n queryset = Scene3D.objects.all()\n serializer_class = Scene3DSerializer", "detail": "back.object.views", "documentation": {} }, { "label": "Scene3DViewSet", "kind": 6, "importPath": "back.object.views", "description": "back.object.views", "peekOfCode": "class Scene3DViewSet(viewsets.ModelViewSet):\n queryset = Scene3D.objects.all()\n serializer_class = Scene3DSerializer\n filterset_fields = (\n \"name\",\n )\nclass Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",", "detail": "back.object.views", "documentation": {} }, { "label": "Element3DFilter", "kind": 6, "importPath": "back.object.views", "description": "back.object.views", "peekOfCode": "class Element3DFilter(django_filters.rest_framework.FilterSet):\n parent = NumberInFilter(\n field_name=\"parent\",\n lookup_expr=\"in\",\n )\n parent__isnull = django_filters.BooleanFilter(\n field_name=\"parent\",\n lookup_expr=\"isnull\",\n )\nclass Element3DViewSet(viewsets.ModelViewSet):", "detail": "back.object.views", "documentation": {} }, { "label": "Element3DViewSet", "kind": 6, "importPath": "back.object.views", "description": "back.object.views", "peekOfCode": "class Element3DViewSet(viewsets.ModelViewSet):\n queryset = Element3D.objects.all()\n serializer_class = Element3DSerializer\n filterset_class = Element3DFilter", "detail": "back.object.views", "documentation": {} }, { "label": "main", "kind": 2, "importPath": "back.manage", "description": "back.manage", "peekOfCode": "def main():\n \"\"\"Run administrative tasks.\"\"\"\n os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'back.settings')\n try:\n from django.core.management import execute_from_command_line\n except ImportError as exc:\n raise ImportError(\n \"Couldn't import Django. Are you sure it's installed and \"\n \"available on your PYTHONPATH environment variable? Did you \"\n \"forget to activate a virtual environment?\"", "detail": "back.manage", "documentation": {} } ]