Merge branch 'main' into storefront-nuxt

This commit is contained in:
Egor Pavlovich Gorbunov 2025-11-11 23:56:29 +03:00
commit d3e016c8d6
214 changed files with 17238 additions and 14962 deletions

View file

@ -7,10 +7,16 @@ from engine.blog.serializers import PostSerializer
POST_SCHEMA = {
"list": extend_schema(
tags=[
"blog",
],
summary=_("list all posts (read-only)"),
responses={status.HTTP_200_OK: PostSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"blog",
],
summary=_("retrieve a single post (read-only)"),
responses={status.HTTP_200_OK: PostSerializer(), **BASE_ERRORS},
),

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "المدونة"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "سرد جميع المشاركات (للقراءة فقط)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "استرداد منشور واحد (للقراءة فقط)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Seznam všech příspěvků (pouze pro čtení)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Získání jednoho příspěvku (pouze pro čtení)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Vis alle indlæg (skrivebeskyttet)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Hent et enkelt indlæg (skrivebeskyttet)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Alle Beiträge auflisten (schreibgeschützt)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Einen einzelnen Beitrag abrufen (schreibgeschützt)"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -21,11 +21,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "List all posts (read-only)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Retrieve a single post (read-only)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "List all posts (read-only)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Retrieve a single post (read-only)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Listar todos los mensajes (sólo lectura)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Recuperar una única entrada (sólo lectura)"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -20,11 +20,11 @@ msgstr ""
msgid "blog"
msgstr ""
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr ""
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Liste de tous les messages (en lecture seule)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Récupérer un seul message (en lecture seule)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "בלוג"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "הצג את כל ההודעות (לקריאה בלבד)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "איתור פוסט בודד (לקריאה בלבד)"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -20,11 +20,11 @@ msgstr ""
msgid "blog"
msgstr ""
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr ""
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -20,11 +20,11 @@ msgstr ""
msgid "blog"
msgstr ""
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr ""
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Daftar semua postingan (hanya-baca)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Mengambil satu postingan (hanya-baca)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Elenco di tutti i messaggi (solo lettura)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Recuperare un singolo post (solo lettura)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "ブログ"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "すべての投稿をリストアップする(読み取り専用)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "単一の投稿を取得する(読み取り専用)"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -20,11 +20,11 @@ msgstr ""
msgid "blog"
msgstr ""
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr ""
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "블로그"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "모든 게시물 나열(읽기 전용)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "단일 게시물 검색(읽기 전용)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Alle berichten weergeven (alleen-lezen)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Een enkel bericht ophalen (alleen-lezen)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blogg"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Liste over alle innlegg (skrivebeskyttet)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Hent et enkelt innlegg (skrivebeskyttet)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Lista wszystkich postów (tylko do odczytu)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Pobieranie pojedynczego wpisu (tylko do odczytu)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Listar todas as postagens (somente leitura)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Recuperar um único post (somente leitura)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Listează toate postările (doar pentru citire)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Recuperează o singură postare (read-only)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Блог"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Список всех сообщений (только для чтения)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Получение одного сообщения (только для чтения)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blogg"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Lista alla inlägg (skrivskyddad)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Hämta ett enskilt inlägg (skrivskyddat)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "บล็อก"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "แสดงรายการโพสต์ทั้งหมด (อ่านอย่างเดียว)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "ดึงโพสต์เดียว (อ่านอย่างเดียว)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Tüm gönderileri listele (salt okunur)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Tek bir gönderiyi al (salt okunur)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "Blog"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "Danh sách tất cả các bài đăng (chỉ đọc)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "Lấy một bài đăng duy nhất (chỉ đọc)"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -17,11 +17,11 @@ msgstr ""
msgid "blog"
msgstr "博客"
#: engine/blog/docs/drf/viewsets.py:10
#: engine/blog/docs/drf/viewsets.py:13
msgid "list all posts (read-only)"
msgstr "列出所有帖子(只读)"
#: engine/blog/docs/drf/viewsets.py:14
#: engine/blog/docs/drf/viewsets.py:20
msgid "retrieve a single post (read-only)"
msgstr "检索单个帖子(只读)"

View file

@ -1,3 +1,5 @@
from django.conf import settings
from django.http import FileResponse
from django.utils.translation import gettext_lazy as _
from drf_spectacular.utils import OpenApiParameter, extend_schema, inline_serializer
from rest_framework import status
@ -12,8 +14,33 @@ from engine.core.serializers import (
)
from engine.payments.serializers import TransactionProcessSerializer
CUSTOM_OPENAPI_SCHEMA = {
"get": extend_schema(
tags=[
"misc",
],
parameters=[
OpenApiParameter(
name="lang",
type=str,
location="query",
enum=list(dict(settings.LANGUAGES).keys()),
),
],
summary=_("OpenAPI schema in selected format with selected language"),
description=_(
"OpenApi3 schema for this API. Format can be selected via content negotiation. "
"Language can be selected with Accept-Language and query parameter both."
),
)
}
CACHE_SCHEMA = {
"post": extend_schema(
tags=[
"misc",
],
summary=_("cache I/O"),
description=_(
"apply only a key to read permitted data from cache.\n"
@ -29,6 +56,9 @@ CACHE_SCHEMA = {
LANGUAGE_SCHEMA = {
"get": extend_schema(
tags=[
"misc",
],
summary=_("get a list of supported languages"),
responses={
status.HTTP_200_OK: LanguageSerializer(many=True),
@ -38,6 +68,9 @@ LANGUAGE_SCHEMA = {
PARAMETERS_SCHEMA = {
"get": extend_schema(
tags=[
"misc",
],
summary=_("get application's exposable parameters"),
responses={status.HTTP_200_OK: inline_serializer("parameters", fields={"key": CharField(default="value")})},
)
@ -45,6 +78,9 @@ PARAMETERS_SCHEMA = {
CONTACT_US_SCHEMA = {
"post": extend_schema(
tags=[
"misc",
],
summary=_("send a message to the support team"),
request=ContactUsSerializer,
responses={
@ -56,6 +92,9 @@ CONTACT_US_SCHEMA = {
REQUEST_CURSED_URL_SCHEMA = {
"post": extend_schema(
tags=[
"misc",
],
summary=_("request a CORSed URL"),
request=inline_serializer("url", fields={"url": CharField(default="https://example.org")}),
responses={
@ -67,6 +106,10 @@ REQUEST_CURSED_URL_SCHEMA = {
SEARCH_SCHEMA = {
"get": extend_schema(
tags=[
"misc",
],
summary=_("Search between products, categories and brands"),
parameters=[
OpenApiParameter(
name="q",
@ -76,11 +119,13 @@ SEARCH_SCHEMA = {
)
],
responses={
200: inline_serializer(
status.HTTP_200_OK: inline_serializer(
name="GlobalSearchResponse",
fields={"results": DictField(child=ListField(child=DictField(child=CharField())))},
),
400: inline_serializer(name="GlobalSearchErrorResponse", fields={"error": CharField()}),
status.HTTP_400_BAD_REQUEST: inline_serializer(
name="GlobalSearchErrorResponse", fields={"error": CharField()}
),
},
description=(_("global search endpoint to query across project's tables")),
)
@ -88,14 +133,38 @@ SEARCH_SCHEMA = {
BUY_AS_BUSINESS_SCHEMA = {
"post": extend_schema(
tags=[
"misc",
],
summary=_("purchase an order as a business"),
request=BuyAsBusinessOrderSerializer,
responses={
201: TransactionProcessSerializer,
400: error,
status.HTTP_201_CREATED: TransactionProcessSerializer,
status.HTTP_400_BAD_REQUEST: error,
},
description=(
_("purchase an order as a business, using the provided `products` with `product_uuid` and `attributes`.")
),
)
}
DOWNLOAD_DIGITAL_ASSET_SCHEMA = {
"get": extend_schema(
tags=[
"misc",
],
parameters=[
OpenApiParameter(
name="order_product_uuid",
location="path",
required=True,
allow_blank=False,
)
],
summary=_("download a digital asset from purchased digital order"),
responses={
status.HTTP_200_OK: FileResponse,
status.HTTP_400_BAD_REQUEST: error,
},
)
}

View file

@ -55,26 +55,44 @@ from engine.payments.serializers import TransactionProcessSerializer
ATTRIBUTE_GROUP_SCHEMA = {
"list": extend_schema(
tags=[
"attributeGroups",
],
summary=_("list all attribute groups (simple view)"),
responses={status.HTTP_200_OK: AttributeGroupSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"attributeGroups",
],
summary=_("retrieve a single attribute group (detailed view)"),
responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"attributeGroups",
],
summary=_("create an attribute group"),
responses={status.HTTP_201_CREATED: AttributeGroupDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"attributeGroups",
],
summary=_("delete an attribute group"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"attributeGroups",
],
summary=_("rewrite an existing attribute group saving non-editables"),
responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"attributeGroups",
],
summary=_("rewrite some fields of an existing attribute group saving non-editables"),
responses={status.HTTP_200_OK: AttributeGroupDetailSerializer(), **BASE_ERRORS},
),
@ -82,26 +100,44 @@ ATTRIBUTE_GROUP_SCHEMA = {
ATTRIBUTE_SCHEMA = {
"list": extend_schema(
tags=[
"attributes",
],
summary=_("list all attributes (simple view)"),
responses={status.HTTP_200_OK: AttributeSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"attributes",
],
summary=_("retrieve a single attribute (detailed view)"),
responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"attributes",
],
summary=_("create an attribute"),
responses={status.HTTP_201_CREATED: AttributeDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"attributes",
],
summary=_("delete an attribute"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"attributes",
],
summary=_("rewrite an existing attribute saving non-editables"),
responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"attributes",
],
summary=_("rewrite some fields of an existing attribute saving non-editables"),
responses={status.HTTP_200_OK: AttributeDetailSerializer(), **BASE_ERRORS},
),
@ -109,26 +145,44 @@ ATTRIBUTE_SCHEMA = {
ATTRIBUTE_VALUE_SCHEMA = {
"list": extend_schema(
tags=[
"attributeValues",
],
summary=_("list all attribute values (simple view)"),
responses={status.HTTP_200_OK: AttributeValueSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"attributeValues",
],
summary=_("retrieve a single attribute value (detailed view)"),
responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"attributeValues",
],
summary=_("create an attribute value"),
responses={status.HTTP_201_CREATED: AttributeValueDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"attributeValues",
],
summary=_("delete an attribute value"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"attributeValues",
],
summary=_("rewrite an existing attribute value saving non-editables"),
responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"attributeValues",
],
summary=_("rewrite some fields of an existing attribute value saving non-editables"),
responses={status.HTTP_200_OK: AttributeValueDetailSerializer(), **BASE_ERRORS},
),
@ -136,11 +190,17 @@ ATTRIBUTE_VALUE_SCHEMA = {
CATEGORY_SCHEMA = {
"list": extend_schema(
tags=[
"categories",
],
summary=_("list all categories (simple view)"),
description=_("list all categories (simple view)"),
responses={status.HTTP_200_OK: CategorySimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"categories",
],
summary=_("retrieve a single category (detailed view)"),
description=_("retrieve a single category (detailed view)"),
parameters=[
@ -154,26 +214,41 @@ CATEGORY_SCHEMA = {
responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"categories",
],
summary=_("create a category"),
description=_("create a category"),
responses={status.HTTP_201_CREATED: CategoryDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"categories",
],
summary=_("delete a category"),
description=_("delete a category"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"categories",
],
summary=_("rewrite an existing category saving non-editables"),
description=_("rewrite an existing category saving non-editables"),
responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"categories",
],
summary=_("rewrite some fields of an existing category saving non-editables"),
description=_("rewrite some fields of an existing category saving non-editables"),
responses={status.HTTP_200_OK: CategoryDetailSerializer(), **BASE_ERRORS},
),
"seo_meta": extend_schema(
tags=[
"categories",
],
summary=_("SEO Meta snapshot"),
description=_("returns a snapshot of the category's SEO meta data"),
parameters=[
@ -193,6 +268,9 @@ CATEGORY_SCHEMA = {
ORDER_SCHEMA = {
"list": extend_schema(
tags=[
"orders",
],
summary=_("list all orders (simple view)"),
description=_("for non-staff users, only their own orders are returned."),
parameters=[
@ -252,6 +330,9 @@ ORDER_SCHEMA = {
responses={status.HTTP_200_OK: OrderSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"orders",
],
summary=_("retrieve a single order (detailed view)"),
parameters=[
OpenApiParameter(
@ -264,23 +345,38 @@ ORDER_SCHEMA = {
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"orders",
],
summary=_("create an order"),
description=_("doesn't work for non-staff users."),
responses={status.HTTP_201_CREATED: OrderDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"orders",
],
summary=_("delete an order"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"orders",
],
summary=_("rewrite an existing order saving non-editables"),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"orders",
],
summary=_("rewrite some fields of an existing order saving non-editables"),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
),
"buy": extend_schema(
tags=[
"orders",
],
summary=_("purchase an order"),
description=_(
"finalizes the order purchase. if `force_balance` is used,"
@ -294,7 +390,21 @@ ORDER_SCHEMA = {
**BASE_ERRORS,
},
),
"current": extend_schema(
tags=[
"orders",
],
summary=_("retrieve current pending order of a user"),
description=_("retrieves a current pending order of an authenticated user"),
responses={
status.HTTP_200_OK: OrderDetailSerializer(),
**BASE_ERRORS,
},
),
"buy_unregistered": extend_schema(
tags=[
"orders",
],
summary=_("purchase an order without account creation"),
description=_("finalizes the order purchase for a non-registered user."),
request=BuyUnregisteredOrderSerializer(),
@ -304,24 +414,36 @@ ORDER_SCHEMA = {
},
),
"add_order_product": extend_schema(
tags=[
"orders",
],
summary=_("add product to order"),
description=_("adds a product to an order using the provided `product_uuid` and `attributes`."),
request=AddOrderProductSerializer(),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
),
"bulk_add_order_products": extend_schema(
tags=[
"orders",
],
summary=_("add a list of products to order, quantities will not count"),
description=_("adds a list of products to an order using the provided `product_uuid` and `attributes`."),
request=BulkAddOrderProductsSerializer(),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
),
"remove_order_product": extend_schema(
tags=[
"orders",
],
summary=_("remove product from order"),
description=_("removes a product from an order using the provided `product_uuid` and `attributes`."),
request=RemoveOrderProductSerializer(),
responses={status.HTTP_200_OK: OrderDetailSerializer(), **BASE_ERRORS},
),
"bulk_remove_order_products": extend_schema(
tags=[
"orders",
],
summary=_("remove product from order, quantities will not count"),
description=_("removes a list of products from an order using the provided `product_uuid` and `attributes`"),
request=BulkRemoveOrderProductsSerializer(),
@ -331,50 +453,91 @@ ORDER_SCHEMA = {
WISHLIST_SCHEMA = {
"list": extend_schema(
tags=[
"wishlists",
],
summary=_("list all wishlists (simple view)"),
description=_("for non-staff users, only their own wishlists are returned."),
responses={status.HTTP_200_OK: WishlistSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"wishlists",
],
summary=_("retrieve a single wishlist (detailed view)"),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"wishlists",
],
summary=_("create an wishlist"),
description=_("Doesn't work for non-staff users."),
responses={status.HTTP_201_CREATED: WishlistDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"wishlists",
],
summary=_("delete an wishlist"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"wishlists",
],
summary=_("rewrite an existing wishlist saving non-editables"),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"wishlists",
],
summary=_("rewrite some fields of an existing wishlist saving non-editables"),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
),
"current": extend_schema(
tags=[
"wishlists",
],
summary=_("retrieve current pending wishlist of a user"),
description=_("retrieves a current pending wishlist of an authenticated user"),
responses={
status.HTTP_200_OK: WishlistDetailSerializer(),
**BASE_ERRORS,
},
),
"add_wishlist_product": extend_schema(
tags=[
"wishlists",
],
summary=_("add product to wishlist"),
description=_("adds a product to an wishlist using the provided `product_uuid`"),
request=AddWishlistProductSerializer(),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
),
"remove_wishlist_product": extend_schema(
tags=[
"wishlists",
],
summary=_("remove product from wishlist"),
description=_("removes a product from an wishlist using the provided `product_uuid`"),
request=RemoveWishlistProductSerializer(),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
),
"bulk_add_wishlist_products": extend_schema(
tags=[
"wishlists",
],
summary=_("add many products to wishlist"),
description=_("adds many products to an wishlist using the provided `product_uuids`"),
request=BulkAddWishlistProductSerializer(),
responses={status.HTTP_200_OK: WishlistDetailSerializer(), **BASE_ERRORS},
),
"bulk_remove_wishlist_products": extend_schema(
tags=[
"wishlists",
],
summary=_("remove many products from wishlist"),
description=_("removes many products from an wishlist using the provided `product_uuids`"),
request=BulkRemoveWishlistProductSerializer(),
@ -399,6 +562,9 @@ ATTRIBUTES_DESC = _(
PRODUCT_SCHEMA = {
"list": extend_schema(
tags=[
"products",
],
summary=_("list all products (simple view)"),
description=_("list all products (simple view)"),
parameters=[
@ -426,6 +592,9 @@ PRODUCT_SCHEMA = {
},
),
"retrieve": extend_schema(
tags=[
"products",
],
summary=_("retrieve a single product (detailed view)"),
description=_("retrieve a single product (detailed view)"),
parameters=[
@ -442,6 +611,9 @@ PRODUCT_SCHEMA = {
},
),
"create": extend_schema(
tags=[
"products",
],
summary=_("create a product"),
description=_("create a product"),
responses={
@ -450,6 +622,9 @@ PRODUCT_SCHEMA = {
},
),
"update": extend_schema(
tags=[
"products",
],
summary=_("rewrite an existing product, preserving non-editable fields"),
description=_("rewrite an existing product, preserving non-editable fields"),
parameters=[
@ -466,6 +641,9 @@ PRODUCT_SCHEMA = {
},
),
"partial_update": extend_schema(
tags=[
"products",
],
summary=_("update some fields of an existing product, preserving non-editable fields"),
description=_("update some fields of an existing product, preserving non-editable fields"),
parameters=[
@ -482,6 +660,9 @@ PRODUCT_SCHEMA = {
},
),
"destroy": extend_schema(
tags=[
"products",
],
summary=_("delete a product"),
description=_("delete a product"),
parameters=[
@ -498,6 +679,9 @@ PRODUCT_SCHEMA = {
},
),
"feedbacks": extend_schema(
tags=[
"products",
],
summary=_("lists all permitted feedbacks for a product"),
description=_("lists all permitted feedbacks for a product"),
parameters=[
@ -514,6 +698,9 @@ PRODUCT_SCHEMA = {
},
),
"seo_meta": extend_schema(
tags=[
"products",
],
summary=_("SEO Meta snapshot"),
description=_("returns a snapshot of the product's SEO meta data"),
parameters=[
@ -533,6 +720,9 @@ PRODUCT_SCHEMA = {
ADDRESS_SCHEMA = {
"list": extend_schema(
tags=[
"addresses",
],
summary=_("list all addresses"),
responses={
status.HTTP_200_OK: AddressSerializer(many=True),
@ -540,6 +730,9 @@ ADDRESS_SCHEMA = {
},
),
"retrieve": extend_schema(
tags=[
"addresses",
],
summary=_("retrieve a single address"),
responses={
status.HTTP_200_OK: AddressSerializer(),
@ -547,6 +740,9 @@ ADDRESS_SCHEMA = {
},
),
"create": extend_schema(
tags=[
"addresses",
],
summary=_("create a new address"),
request=AddressCreateSerializer(),
responses={
@ -555,6 +751,9 @@ ADDRESS_SCHEMA = {
},
),
"destroy": extend_schema(
tags=[
"addresses",
],
summary=_("delete an address"),
responses={
status.HTTP_204_NO_CONTENT: {},
@ -562,6 +761,9 @@ ADDRESS_SCHEMA = {
},
),
"update": extend_schema(
tags=[
"addresses",
],
summary=_("update an entire address"),
request=AddressSerializer(),
responses={
@ -570,6 +772,9 @@ ADDRESS_SCHEMA = {
},
),
"partial_update": extend_schema(
tags=[
"addresses",
],
summary=_("partially update an address"),
request=AddressSerializer(),
responses={
@ -578,6 +783,9 @@ ADDRESS_SCHEMA = {
},
),
"autocomplete": extend_schema(
tags=[
"addresses",
],
summary=_("autocomplete address suggestions"),
parameters=[
OpenApiParameter(
@ -602,26 +810,44 @@ ADDRESS_SCHEMA = {
FEEDBACK_SCHEMA = {
"list": extend_schema(
tags=[
"feedbacks",
],
summary=_("list all feedbacks (simple view)"),
responses={status.HTTP_200_OK: FeedbackSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"feedbacks",
],
summary=_("retrieve a single feedback (detailed view)"),
responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"feedbacks",
],
summary=_("create a feedback"),
responses={status.HTTP_201_CREATED: FeedbackDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"feedbacks",
],
summary=_("delete a feedback"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"feedbacks",
],
summary=_("rewrite an existing feedback saving non-editables"),
responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"feedbacks",
],
summary=_("rewrite some fields of an existing feedback saving non-editables"),
responses={status.HTTP_200_OK: FeedbackDetailSerializer(), **BASE_ERRORS},
),
@ -629,6 +855,9 @@ FEEDBACK_SCHEMA = {
ORDER_PRODUCT_SCHEMA = {
"list": extend_schema(
tags=[
"orderProducts",
],
summary=_("list all orderproduct relations (simple view)"),
responses={
status.HTTP_200_OK: OrderProductSimpleSerializer(many=True),
@ -636,6 +865,9 @@ ORDER_PRODUCT_SCHEMA = {
},
),
"retrieve": extend_schema(
tags=[
"orderProducts",
],
summary=_("retrieve a single orderproduct relation (detailed view)"),
responses={
status.HTTP_200_OK: OrderProductDetailSerializer(),
@ -643,6 +875,9 @@ ORDER_PRODUCT_SCHEMA = {
},
),
"create": extend_schema(
tags=[
"orderProducts",
],
summary=_("create a new orderproduct relation"),
responses={
status.HTTP_201_CREATED: OrderProductDetailSerializer(),
@ -650,6 +885,9 @@ ORDER_PRODUCT_SCHEMA = {
},
),
"update": extend_schema(
tags=[
"orderProducts",
],
summary=_("replace an existing orderproduct relation"),
responses={
status.HTTP_200_OK: OrderProductDetailSerializer(),
@ -657,6 +895,9 @@ ORDER_PRODUCT_SCHEMA = {
},
),
"partial_update": extend_schema(
tags=[
"orderProducts",
],
summary=_("partially update an existing orderproduct relation"),
responses={
status.HTTP_200_OK: OrderProductDetailSerializer(),
@ -664,6 +905,9 @@ ORDER_PRODUCT_SCHEMA = {
},
),
"destroy": extend_schema(
tags=[
"orderProducts",
],
summary=_("delete an orderproduct relation"),
responses={
status.HTTP_204_NO_CONTENT: {},
@ -671,6 +915,9 @@ ORDER_PRODUCT_SCHEMA = {
},
),
"do_feedback": extend_schema(
tags=[
"orderProducts",
],
summary=_("add or remove feedback on an orderproduct relation"),
request=DoFeedbackSerializer,
responses={
@ -685,10 +932,16 @@ ORDER_PRODUCT_SCHEMA = {
BRAND_SCHEMA = {
"list": extend_schema(
tags=[
"brands",
],
summary=_("list all brands (simple view)"),
responses={status.HTTP_200_OK: BrandSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"brands",
],
summary=_("retrieve a single brand (detailed view)"),
parameters=[
OpenApiParameter(
@ -701,23 +954,38 @@ BRAND_SCHEMA = {
responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"brands",
],
summary=_("create a brand"),
responses={status.HTTP_201_CREATED: BrandDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"brands",
],
summary=_("delete a brand"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"brands",
],
summary=_("rewrite an existing brand saving non-editables"),
responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"brands",
],
summary=_("rewrite some fields of an existing brand saving non-editables"),
responses={status.HTTP_200_OK: BrandDetailSerializer(), **BASE_ERRORS},
),
"seo_meta": extend_schema(
summary=_("SEO Meta snapshot for brand"),
tags=[
"brands",
],
summary=_("SEO Meta snapshot"),
parameters=[
OpenApiParameter(
name="lookup_value",
@ -732,26 +1000,44 @@ BRAND_SCHEMA = {
VENDOR_SCHEMA = {
"list": extend_schema(
tags=[
"vendors",
],
summary=_("list all vendors (simple view)"),
responses={status.HTTP_200_OK: VendorSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"vendors",
],
summary=_("retrieve a single vendor (detailed view)"),
responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"vendors",
],
summary=_("create a vendor"),
responses={status.HTTP_201_CREATED: VendorDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"vendors",
],
summary=_("delete a vendor"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"vendors",
],
summary=_("rewrite an existing vendor saving non-editables"),
responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"vendors",
],
summary=_("rewrite some fields of an existing vendor saving non-editables"),
responses={status.HTTP_200_OK: VendorDetailSerializer(), **BASE_ERRORS},
),
@ -759,26 +1045,44 @@ VENDOR_SCHEMA = {
PRODUCT_IMAGE_SCHEMA = {
"list": extend_schema(
tags=[
"productImages",
],
summary=_("list all product images (simple view)"),
responses={status.HTTP_200_OK: ProductImageSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"productImages",
],
summary=_("retrieve a single product image (detailed view)"),
responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"productImages",
],
summary=_("create a product image"),
responses={status.HTTP_201_CREATED: ProductImageDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"productImages",
],
summary=_("delete a product image"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"productImages",
],
summary=_("rewrite an existing product image saving non-editables"),
responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"productImages",
],
summary=_("rewrite some fields of an existing product image saving non-editables"),
responses={status.HTTP_200_OK: ProductImageDetailSerializer(), **BASE_ERRORS},
),
@ -786,26 +1090,44 @@ PRODUCT_IMAGE_SCHEMA = {
PROMOCODE_SCHEMA = {
"list": extend_schema(
tags=[
"promocodes",
],
summary=_("list all promo codes (simple view)"),
responses={status.HTTP_200_OK: PromoCodeSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"promocodes",
],
summary=_("retrieve a single promo code (detailed view)"),
responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"promocodes",
],
summary=_("create a promo code"),
responses={status.HTTP_201_CREATED: PromoCodeDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"promocodes",
],
summary=_("delete a promo code"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"promocodes",
],
summary=_("rewrite an existing promo code saving non-editables"),
responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"promocodes",
],
summary=_("rewrite some fields of an existing promo code saving non-editables"),
responses={status.HTTP_200_OK: PromoCodeDetailSerializer(), **BASE_ERRORS},
),
@ -813,26 +1135,44 @@ PROMOCODE_SCHEMA = {
PROMOTION_SCHEMA = {
"list": extend_schema(
tags=[
"promotions",
],
summary=_("list all promotions (simple view)"),
responses={status.HTTP_200_OK: PromotionSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"promotions",
],
summary=_("retrieve a single promotion (detailed view)"),
responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"promotions",
],
summary=_("create a promotion"),
responses={status.HTTP_201_CREATED: PromotionDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"promotions",
],
summary=_("delete a promotion"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"promotions",
],
summary=_("rewrite an existing promotion saving non-editables"),
responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"promotions",
],
summary=_("rewrite some fields of an existing promotion saving non-editables"),
responses={status.HTTP_200_OK: PromotionDetailSerializer(), **BASE_ERRORS},
),
@ -840,26 +1180,44 @@ PROMOTION_SCHEMA = {
STOCK_SCHEMA = {
"list": extend_schema(
tags=[
"stocks",
],
summary=_("list all stocks (simple view)"),
responses={status.HTTP_200_OK: StockSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"stocks",
],
summary=_("retrieve a single stock (detailed view)"),
responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"stocks",
],
summary=_("create a stock record"),
responses={status.HTTP_201_CREATED: StockDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"stocks",
],
summary=_("delete a stock record"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"stocks",
],
summary=_("rewrite an existing stock record saving non-editables"),
responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"stocks",
],
summary=_("rewrite some fields of an existing stock record saving non-editables"),
responses={status.HTTP_200_OK: StockDetailSerializer(), **BASE_ERRORS},
),
@ -867,26 +1225,44 @@ STOCK_SCHEMA = {
PRODUCT_TAG_SCHEMA = {
"list": extend_schema(
tags=[
"productTags",
],
summary=_("list all product tags (simple view)"),
responses={status.HTTP_200_OK: ProductTagSimpleSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"productTags",
],
summary=_("retrieve a single product tag (detailed view)"),
responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS},
),
"create": extend_schema(
tags=[
"productTags",
],
summary=_("create a product tag"),
responses={status.HTTP_201_CREATED: ProductTagDetailSerializer(), **BASE_ERRORS},
),
"destroy": extend_schema(
tags=[
"productTags",
],
summary=_("delete a product tag"),
responses={status.HTTP_204_NO_CONTENT: {}, **BASE_ERRORS},
),
"update": extend_schema(
tags=[
"productTags",
],
summary=_("rewrite an existing product tag saving non-editables"),
responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS},
),
"partial_update": extend_schema(
tags=[
"productTags",
],
summary=_("rewrite some fields of an existing product tag saving non-editables"),
responses={status.HTTP_200_OK: ProductTagDetailSerializer(), **BASE_ERRORS},
),

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -20,7 +20,7 @@ from django_ratelimit.decorators import ratelimit
from djangorestframework_camel_case.render import CamelCaseJSONRenderer
from djangorestframework_camel_case.util import camelize
from drf_spectacular.utils import extend_schema_view
from drf_spectacular.views import SpectacularRedocView, SpectacularSwaggerView
from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView
from graphene_file_upload.django import FileUploadGraphQLView
from rest_framework import status
from rest_framework.permissions import AllowAny
@ -36,13 +36,15 @@ from engine.core.docs.drf.views import (
BUY_AS_BUSINESS_SCHEMA,
CACHE_SCHEMA,
CONTACT_US_SCHEMA,
CUSTOM_OPENAPI_SCHEMA,
DOWNLOAD_DIGITAL_ASSET_SCHEMA,
LANGUAGE_SCHEMA,
PARAMETERS_SCHEMA,
REQUEST_CURSED_URL_SCHEMA,
SEARCH_SCHEMA,
)
from engine.core.elasticsearch import process_query
from engine.core.models import DigitalAssetDownload, Order
from engine.core.models import DigitalAssetDownload, Order, OrderProduct
from engine.core.serializers import (
BuyAsBusinessOrderSerializer,
CacheOperatorSerializer,
@ -94,6 +96,12 @@ class CustomGraphQLView(FileUploadGraphQLView):
return request
@extend_schema_view(**CUSTOM_OPENAPI_SCHEMA)
class CustomSpectacularAPIView(SpectacularAPIView):
def get(self, request, *args, **kwargs):
return super().get(request, *args, **kwargs)
class CustomSwaggerView(SpectacularSwaggerView):
def get_context_data(self, **kwargs):
# noinspection PyUnresolvedReferences
@ -300,6 +308,7 @@ class BuyAsBusinessView(APIView):
)
@extend_schema_view(**DOWNLOAD_DIGITAL_ASSET_SCHEMA)
class DownloadDigitalAssetView(APIView):
__doc__ = _( # type: ignore [assignment]
"Handles the downloading of a digital asset associated with an order.\n"
@ -311,25 +320,30 @@ class DownloadDigitalAssetView(APIView):
def get(self, request: HttpRequest, *args, **kwargs) -> HttpResponse | FileResponse:
try:
op_uuid = str(kwargs.get("order_product_uuid"))
if not op_uuid:
raise BadRequest(_("order_product_uuid is required"))
uuid = urlsafe_base64_decode(op_uuid).decode("utf-8")
download = DigitalAssetDownload.objects.get(order_product__uuid=uuid)
try:
order_product = OrderProduct.objects.get(uuid=uuid)
except OrderProduct.DoesNotExist as dne:
raise BadRequest(_("order product does not exist")) from dne
if download.num_downloads >= 1:
if order_product.download.num_downloads >= 1:
raise BadRequest(_("you can only download the digital asset once"))
if download.order_product.status != "FINISHED":
if order_product.download.order_product.status != "FINISHED":
raise BadRequest(_("the order must be paid before downloading the digital asset"))
download.num_downloads += 1
download.save()
order_product.download.num_downloads += 1
order_product.download.save()
if not download.order_product.product:
if not order_product.download.order_product.product:
raise BadRequest(_("the order product does not have a product"))
file_path = download.order_product.product.stocks.first().digital_asset.path # type: ignore [union-attr]
file_path = order_product.download.order_product.product.stocks.first().digital_asset.path # type: ignore [union-attr]
content_type, encoding = mimetypes.guess_type(file_path)
if not content_type:
@ -352,8 +366,7 @@ class DownloadDigitalAssetView(APIView):
data=camelize(
{
"error": "An error occurred while trying to download the digital asset",
"traceback": traceback.format_exc() if settings.DEBUG else None,
"received": {"order_product_uuid": kwargs.get("order_product_uuid", "")},
"detail": traceback.format_exc() if settings.DEBUG else None,
}
),
status=status.HTTP_503_SERVICE_UNAVAILABLE,

View file

@ -7,6 +7,9 @@ from engine.payments.serializers import DepositSerializer, TransactionProcessSer
DEPOSIT_SCHEMA = {
"post": extend_schema(
tags=[
"payments",
],
summary=_("deposit to balance"),
description=_("deposit some money to balance"),
request=DepositSerializer,

View file

@ -8,10 +8,16 @@ from engine.payments.serializers import TransactionSerializer
TRANSACTION_SCHEMA = {
"list": extend_schema(
tags=[
"payments",
],
summary=_("list all transactions (read-only)"),
responses={status.HTTP_200_OK: TransactionSerializer(many=True), **BASE_ERRORS},
),
"retrieve": extend_schema(
tags=[
"payments",
],
summary=_("retrieve a single transaction (read-only)"),
parameters=[
OpenApiParameter(

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "الإيداع"
msgid "withdraw"
msgstr "سحب"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "الإيداع في الرصيد"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "إيداع بعض الأموال لتحقيق التوازن"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "سرد جميع المعاملات (للقراءة فقط)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "استرداد معاملة واحدة (للقراءة فقط)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "معرّف المعاملة UUID"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Vklad"
msgid "withdraw"
msgstr "Stáhnout"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Vklad do zůstatku"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Vložte nějaké peníze na účet"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "Seznam všech transakcí (pouze pro čtení)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Získání jedné transakce (pouze pro čtení)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "UUID transakce"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Indskud"
msgid "withdraw"
msgstr "Træk dig tilbage"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Indbetaling til saldo"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Sæt nogle penge ind på saldoen"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "Liste over alle transaktioner (skrivebeskyttet)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Hent en enkelt transaktion (skrivebeskyttet)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "Transaktions-UUID"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Einzahlung"
msgid "withdraw"
msgstr "Zurückziehen"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Einzahlung auf den Saldo"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Einzahlung von Geld zum Ausgleich"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "Alle Transaktionen auflisten (schreibgeschützt)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Eine einzelne Transaktion abrufen (schreibgeschützt)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "Transaktion UUID"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -41,23 +41,23 @@ msgstr "Deposit"
msgid "withdraw"
msgstr "Withdraw"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Deposit to balance"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Deposit some money to balance"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "List all transactions (read-only)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Retrieve a single transaction (read-only)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "Transaction UUID"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Deposit"
msgid "withdraw"
msgstr "Withdraw"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Deposit to balance"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Deposit some money to balance"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "List all transactions (read-only)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Retrieve a single transaction (read-only)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "Transaction UUID"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Depósito"
msgid "withdraw"
msgstr "Retirar"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Depósito a cuenta"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Depositar dinero para equilibrar"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "Listar todas las transacciones (sólo lectura)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Recuperar una única transacción (sólo lectura)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "UUID de la transacción"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -40,23 +40,23 @@ msgstr ""
msgid "withdraw"
msgstr ""
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr ""
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Dépôt"
msgid "withdraw"
msgstr "Se retirer"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Dépôt au solde"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Déposer de l'argent sur le compte"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "Liste de toutes les transactions (en lecture seule)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Récupérer une transaction unique (en lecture seule)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "UUID de la transaction"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "הפקדה"
msgid "withdraw"
msgstr "למשוך"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "הפקדה לאיזון"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "הפקד סכום כסף כדי לאזן את החשבון"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "הצג את כל העסקאות (לקריאה בלבד)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "איתור עסקה בודדת (לקריאה בלבד)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "UUID של העסקה"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: LANGUAGE <CONTACT@FUREUNOIR.COM>\n"
@ -40,23 +40,23 @@ msgstr ""
msgid "withdraw"
msgstr ""
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr ""
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -40,23 +40,23 @@ msgstr ""
msgid "withdraw"
msgstr ""
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr ""
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr ""
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Deposit"
msgid "withdraw"
msgstr "Menarik diri"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Setoran ke saldo"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Menyetor sejumlah uang untuk menyeimbangkan"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "Daftar semua transaksi (hanya-baca)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Mengambil satu transaksi (hanya-baca)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "UUID Transaksi"

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2025.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-11 17:37+0300\n"
"POT-Creation-Date: 2025-11-11 23:13+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
@ -37,23 +37,23 @@ msgstr "Deposito"
msgid "withdraw"
msgstr "Ritiro"
#: engine/payments/docs/drf/views.py:10
#: engine/payments/docs/drf/views.py:13
msgid "deposit to balance"
msgstr "Deposito a saldo"
#: engine/payments/docs/drf/views.py:11
#: engine/payments/docs/drf/views.py:14
msgid "deposit some money to balance"
msgstr "Depositare del denaro per bilanciare"
#: engine/payments/docs/drf/viewsets.py:11
#: engine/payments/docs/drf/viewsets.py:14
msgid "list all transactions (read-only)"
msgstr "Elenco di tutte le transazioni (solo lettura)"
#: engine/payments/docs/drf/viewsets.py:15
#: engine/payments/docs/drf/viewsets.py:21
msgid "retrieve a single transaction (read-only)"
msgstr "Recuperare una singola transazione (solo lettura)"
#: engine/payments/docs/drf/viewsets.py:20
#: engine/payments/docs/drf/viewsets.py:26
msgid "Transaction UUID"
msgstr "UUID della transazione"

Some files were not shown because too many files have changed in this diff Show more