Compare commits

..

2 commits

Author SHA1 Message Date
efb56cf09b 2026.1 2026-01-25 23:18:04 +03:00
39b841fcb2 2026.1 2026-01-25 23:16:38 +03:00
392 changed files with 4468 additions and 2715 deletions

232
.gitignore vendored
View file

@ -1,136 +1,149 @@
# ────────────────────────────────────────────────────────────────────────── # ╔═══════════════════════════════════════════════════════════════════════════╗
# Python bytecode, caches, and compiled artifacts # ║ ║
# ────────────────────────────────────────────────────────────────────────── # ║ ███████╗ ██████╗██╗ ██╗ ██████╗ ███╗ ██╗ ║
# Byte-compiled / optimized / DLL files # ║ ██╔════╝██╔════╝██║ ██║██╔═══██╗████╗ ██║ ║
# ║ ███████╗██║ ███████║██║ ██║██╔██╗ ██║ ║
# ║ ╚════██║██║ ██╔══██║██║ ██║██║╚██╗██║ ║
# ║ ███████║╚██████╗██║ ██║╚██████╔╝██║ ╚████║ ║
# ║ ╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ║
# ║ ║
# ╚═══════════════════════════════════════════════════════════════════════════╝
# ┌───────────────────────────────────────────────────────────────────────────┐
# │ Python │
# └───────────────────────────────────────────────────────────────────────────┘
# Bytecode & compiled
*.py[cod] *.py[cod]
*$py.class *$py.class
*.so *.so
# Cache directories # Caches
__pycache__/ __pycache__/
.pytest_cache/ .pytest_cache/
.hypothesis/ .hypothesis/
.mypy_cache/
.pyre/ .pyre/
.pytype/ .pytype/
.mypy_cache/
.dmypy.json .dmypy.json
dmypy.json dmypy.json
cython_debug/ cython_debug/
# Python environments # Virtual environments
.Python .Python
.venv/
venv/
env/ env/
ENV/
env.bak/ env.bak/
ENV.bak/ ENV.bak/
venv/
venv.bak/ venv.bak/
ENV/
.venv/
__pypackages__/ __pypackages__/
.python-version .python-version
# Local Django settings and database
# ┌───────────────────────────────────────────────────────────────────────────┐
# │ Django │
# └───────────────────────────────────────────────────────────────────────────┘
local_settings.py local_settings.py
db.sqlite3 db.sqlite3
db.sqlite3-journal db.sqlite3-journal
# Django backups and metadata
instance/ instance/
backups/ backups/
# ────────────────────────────────────────────────────────────────────────── # Static & media (collected)
# Logs and reports
# ──────────────────────────────────────────────────────────────────────────
logs/
*.log
debug.log
errors.log
test.json
coverage.xml
coverage.*
*.cover
*.py,cover
nosetests.xml
tmp
# Coverage / test reports
htmlcov/
.coverage
.coverage.*
# CI / tox / nox
.tox/
.nox/
.scrapy
.cover
.pybuilder/
# Storefronts
.nuxt/
.next/
next-env.d.ts
# Celery
celerybeat-schedule
celerybeat.pid
# ──────────────────────────────────────────────────────────────────────────
# Packaging and distribution
# ──────────────────────────────────────────────────────────────────────────
build/
dist/
dist-ssr/
*.egg
*.egg-info/
.installed.cfg
MANIFEST
*.manifest
*.spec
sdist/
wheels/
share/python-wheels/
pip-log.txt
pip-delete-this-directory.txt
desktop.ini
*.iml
# Node build artifacts
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
site/
# ──────────────────────────────────────────────────────────────────────────
# Static, media, and uploads
# ──────────────────────────────────────────────────────────────────────────
static/ static/
media/ media/
# Allow checked-in static from apps # Allow checked-in app static files
!engine/core/static/ !engine/core/static/
!engine/payments/static/ !engine/payments/static/
!engine/vibes_auth/static/ !engine/vibes_auth/static/
!engine/blog/static/ !engine/blog/static/
# Webassets # Celery
.webassets-cache/ celerybeat-schedule
celerybeat.pid
# ┌───────────────────────────────────────────────────────────────────────────┐
# │ Testing & Coverage │
# └───────────────────────────────────────────────────────────────────────────┘
htmlcov/
.coverage
.coverage.*
coverage.xml
coverage.*
*.cover
*.py,cover
nosetests.xml
test.json
.tox/
.nox/
# ┌───────────────────────────────────────────────────────────────────────────┐
# │ Logs │
# └───────────────────────────────────────────────────────────────────────────┘
logs/
*.log
debug.log
errors.log
tmp/
# ┌───────────────────────────────────────────────────────────────────────────┐
# │ Build & Distribution │
# └───────────────────────────────────────────────────────────────────────────┘
build/
dist/
dist-ssr/
sdist/
wheels/
*.egg
*.egg-info/
*.manifest
*.spec
.installed.cfg
MANIFEST
share/python-wheels/
pip-log.txt
pip-delete-this-directory.txt
# ┌───────────────────────────────────────────────────────────────────────────┐
# │ Node.js & Frontend │
# └───────────────────────────────────────────────────────────────────────────┘
# ──────────────────────────────────────────────────────────────────────────
# Node dependencies
# ──────────────────────────────────────────────────────────────────────────
node_modules/ node_modules/
.nuxt/
.next/
next-env.d.ts
*.tsbuildinfo
.webassets-cache/
site/
# ────────────────────────────────────────────────────────────────────────── # Debug logs
# Cypress test artifacts npm-debug.log*
# ────────────────────────────────────────────────────────────────────────── yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
# Cypress
cypress/videos/ cypress/videos/
cypress/screenshots/ cypress/screenshots/
# ──────────────────────────────────────────────────────────────────────────
# IDEs and editors # ┌───────────────────────────────────────────────────────────────────────────┐
# ────────────────────────────────────────────────────────────────────────── # │ IDEs & Editors │
# └───────────────────────────────────────────────────────────────────────────┘
# VS Code # VS Code
.vscode/ .vscode/
!.vscode/extensions.json !.vscode/extensions.json
@ -139,33 +152,46 @@ cypress/screenshots/
.idea/ .idea/
!.idea/icon.svg !.idea/icon.svg
!.idea/externalDependencies.xml !.idea/externalDependencies.xml
!.idea/evibes.iml !.idea/schon.iml
!.idea/evibes.ico
# Microsoft # Visual Studio
*.suo *.suo
*.ntvs* *.ntvs*
*.njsproj *.njsproj
*.sln *.sln
*.sw? *.sw?
# Spyder / Rope # Spyder & Rope
.spyderproject .spyderproject
.spyproject .spyproject
.ropeproject .ropeproject
# macOS
# ┌───────────────────────────────────────────────────────────────────────────┐
# │ OS & System │
# └───────────────────────────────────────────────────────────────────────────┘
.DS_Store .DS_Store
desktop.ini
*.iml
# TypeScript
*.tsbuildinfo
# Environment file # ┌───────────────────────────────────────────────────────────────────────────┐
# │ Project-specific │
# └───────────────────────────────────────────────────────────────────────────┘
# Environment
.env .env
# Development stuff # Development
test.ipynb test.ipynb
.scrapy
.cover
.pybuilder/
# Production stuff # Production
.initialized .initialized
queries queries/
# AI assistants
.claude/

View file

@ -1,51 +0,0 @@
image: ghcr.io/astral-sh/uv:python3.12-bookworm
stages:
- lint
- typecheck
- test
variables:
UV_PYTHON: "3.12"
PIP_DISABLE_PIP_VERSION_CHECK: "1"
PYTHONDONTWRITEBYTECODE: "1"
before_script:
- uv sync --frozen --extra linting
lint:
stage: lint
script:
- uv run ruff format --check .
- uv run ruff check --force-exclude .
rules:
- changes:
- "**/*.py"
- "pyproject.toml"
- ".pre-commit-config.yaml"
when: on_success
- when: never
typecheck:
stage: typecheck
script:
- uv run ty check
rules:
- changes:
- "**/*.py"
- "pyproject.toml"
when: on_success
- when: never
test:
stage: test
script:
- uv run pytest -q
rules:
- changes:
- "**/*.py"
- "pyproject.toml"
- "pytest.ini"
- "pyproject.toml"
when: on_success
- when: never

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 355 KiB

35
CHANGELOG.md Normal file
View file

@ -0,0 +1,35 @@
# Changelog
All notable changes to Schon are documented in this file.
Version format follows [CalVer](https://calver.org/) as `YYYY.MAJOR`.
---
## [2026.1] - 2026-01-25
Initial CalVer release. Project renamed from eVibes to Schon.
### Highlights
- Complete rebrand from eVibes to Schon
- Native Linux deployment with systemd service files
- uv-based dependency management
- Interactive installer supporting Docker and native deployments
- Professional documentation and project structure
### Added
- systemd service files for production deployment (`schon-web`, `schon-worker`, `schon-beat`, `schon-stock-updater`)
- Native Linux installation script with automated setup
- CHANGELOG.md for tracking releases
### Changed
- Project name: eVibes to Schon
- Version scheme: SemVer to CalVer (YYYY.MAJOR)
- Installation: `make install` now prompts for Docker vs native deployment
### Removed
- Legacy eVibes branding and assets

View file

@ -26,7 +26,7 @@ uv.lock @fureunoir contact@fureunoir.com
blog/ @fureunoir contact@fureunoir.com blog/ @fureunoir contact@fureunoir.com
core/ @fureunoir contact@fureunoir.com core/ @fureunoir contact@fureunoir.com
evibes/ @fureunoir contact@fureunoir.com schon/ @fureunoir contact@fureunoir.com
payments/ @fureunoir contact@fureunoir.com payments/ @fureunoir contact@fureunoir.com
scripts/ @fureunoir contact@fureunoir.com scripts/ @fureunoir contact@fureunoir.com
vibes_auth/ @fureunoir contact@fureunoir.com vibes_auth/ @fureunoir contact@fureunoir.com

View file

@ -38,10 +38,10 @@ RUN set -eux; \
RUN curl -LsSf https://astral.sh/uv/install.sh | sh RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH" ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH"
RUN uv venv /opt/evibes-python RUN uv venv /opt/schon-python
ENV VIRTUAL_ENV=/opt/evibes-python ENV VIRTUAL_ENV=/opt/schon-python
ENV UV_PROJECT_ENVIRONMENT=/opt/evibes-python ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python
ENV PATH="/opt/evibes-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH"
COPY pyproject.toml pyproject.toml COPY pyproject.toml pyproject.toml
COPY uv.lock uv.lock COPY uv.lock uv.lock

View file

@ -37,11 +37,10 @@ RUN set -eux; \
RUN curl -LsSf https://astral.sh/uv/install.sh | sh RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH" ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH"
ENV UV_PROJECT_ENVIRONMENT=/opt/evibes-python RUN uv venv /opt/schon-python
ENV PATH="/opt/evibes-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" ENV VIRTUAL_ENV=/opt/schon-python
ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python
RUN uv venv /opt/evibes-python ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH"
ENV VIRTUAL_ENV=/opt/evibes-python
COPY pyproject.toml pyproject.toml COPY pyproject.toml pyproject.toml
COPY uv.lock uv.lock COPY uv.lock uv.lock

View file

@ -37,11 +37,10 @@ RUN set -eux; \
RUN curl -LsSf https://astral.sh/uv/install.sh | sh RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH" ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH"
ENV UV_PROJECT_ENVIRONMENT=/opt/evibes-python RUN uv venv /opt/schon-python
ENV PATH="/opt/evibes-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" ENV VIRTUAL_ENV=/opt/schon-python
ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python
RUN uv venv /opt/evibes-python ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH"
ENV VIRTUAL_ENV=/opt/evibes-python
COPY pyproject.toml pyproject.toml COPY pyproject.toml pyproject.toml
COPY uv.lock uv.lock COPY uv.lock uv.lock

View file

@ -2,10 +2,10 @@
FROM node:22-bookworm-slim AS build FROM node:22-bookworm-slim AS build
WORKDIR /app WORKDIR /app
ARG EVIBES_BASE_DOMAIN ARG schon_BASE_DOMAIN
ARG EVIBES_PROJECT_NAME ARG schon_PROJECT_NAME
ENV EVIBES_BASE_DOMAIN=$EVIBES_BASE_DOMAIN ENV schon_BASE_DOMAIN=$schon_BASE_DOMAIN
ENV EVIBES_PROJECT_NAME=$EVIBES_PROJECT_NAME ENV schon_PROJECT_NAME=$schon_PROJECT_NAME
COPY ./supervisor/package.json ./supervisor/package-lock.json ./ COPY ./supervisor/package.json ./supervisor/package-lock.json ./
RUN npm ci --include=optional RUN npm ci --include=optional

View file

@ -38,10 +38,10 @@ RUN set -eux; \
RUN curl -LsSf https://astral.sh/uv/install.sh | sh RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH" ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH"
RUN uv venv /opt/evibes-python RUN uv venv /opt/schon-python
ENV VIRTUAL_ENV=/opt/evibes-python ENV VIRTUAL_ENV=/opt/schon-python
ENV UV_PROJECT_ENVIRONMENT=/opt/evibes-python ENV UV_PROJECT_ENVIRONMENT=/opt/schon-python
ENV PATH="/opt/evibes-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH" ENV PATH="/opt/schon-python/bin:/root/.local/bin:/root/.cargo/bin:$PATH"
COPY pyproject.toml pyproject.toml COPY pyproject.toml pyproject.toml
COPY uv.lock uv.lock COPY uv.lock uv.lock

View file

@ -1,8 +1,8 @@
eVibes License Version 2.0, April 29, 2025 Schon License Version 2.0, April 29, 2025
Copyright (c) 2025 Egor “fureunoir” Gorbunov Copyright (c) 2025 Egor “fureunoir” Gorbunov
Permission is hereby granted, free of charge, to any person obtaining a copy of the eVibes software and associated documentation (the “Software”), to use, copy, modify, merge, publish, distribute, and sublicense the Software, subject to the terms and conditions below. Any distribution of the Software (in source or binary form) must include a copy of this License and preserve the above copyright notice. By using the Software, you indicate your acceptance of these terms. If you do not agree to these terms, you have no rights to use the Software. Permission is hereby granted, free of charge, to any person obtaining a copy of the Schon software and associated documentation (the “Software”), to use, copy, modify, merge, publish, distribute, and sublicense the Software, subject to the terms and conditions below. Any distribution of the Software (in source or binary form) must include a copy of this License and preserve the above copyright notice. By using the Software, you indicate your acceptance of these terms. If you do not agree to these terms, you have no rights to use the Software.
1. Non-Commercial Use 1. Non-Commercial Use
The Software is provided at no cost for personal, academic, or other non-commercial purposes. “Non-Commercial Use” means any use of the Software that does not generate income (directly or indirectly) and is not part of a for-profit or revenue-generating activity. For Non-Commercial Use, the Software is provided “AS IS” and without any warranty or liability. You may freely use and modify the Software for Non-Commercial purposes, and you may distribute it for non-commercial ends as long as this License is included and the same terms apply to all recipients. The Software is provided at no cost for personal, academic, or other non-commercial purposes. “Non-Commercial Use” means any use of the Software that does not generate income (directly or indirectly) and is not part of a for-profit or revenue-generating activity. For Non-Commercial Use, the Software is provided “AS IS” and without any warranty or liability. You may freely use and modify the Software for Non-Commercial purposes, and you may distribute it for non-commercial ends as long as this License is included and the same terms apply to all recipients.
@ -55,4 +55,4 @@ Egor “fureunoir” Gorbunov
Email: contact@fureunoir.com Email: contact@fureunoir.com
Telegram: https://t.me/fureunoir Telegram: https://t.me/fureunoir
By using the eVibes framework, you acknowledge that you have read and understood this License and agree to be bound by its terms. By using the Schon framework, you acknowledge that you have read and understood this License and agree to be bound by its terms.

100
Makefile Normal file
View file

@ -0,0 +1,100 @@
.PHONY: help install run restart test test-xml test-html uninstall backup \
generate-env export-env make-messages compile-messages \
format check typecheck precommit
# Detect OS and set script paths
ifeq ($(OS),Windows_NT)
SCRIPT_DIR := scripts/Windows
SCRIPT_EXT := .ps1
RUN_SCRIPT = pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/$(1)$(SCRIPT_EXT)
else
SCRIPT_DIR := scripts/Unix
SCRIPT_EXT := .sh
RUN_SCRIPT = bash ./$(SCRIPT_DIR)/$(1)$(SCRIPT_EXT)
endif
help:
@echo "Schon Project Management"
@echo ""
@echo "Usage: make [target]"
@echo ""
@echo "Targets:"
@echo " install Pull and build Docker images"
@echo " run Start all services"
@echo " restart Restart all services"
@echo " test Run tests with coverage"
@echo " test-xml Generate XML coverage report"
@echo " test-html Generate HTML coverage report"
@echo " uninstall Remove containers, volumes, and generated files"
@echo " backup Create a backup"
@echo " generate-env Generate .env file from template"
@echo " export-env Export environment variables"
@echo " make-messages Extract translation strings"
@echo " compile-messages Compile translation files"
@echo " format Format code with ruff"
@echo " check Lint code with ruff"
@echo " typecheck Typecheck code with ty"
@echo " precommit Run format, check, and typecheck"
@echo ""
@echo "Detected OS: $(if $(filter Windows_NT,$(OS)),Windows,Unix)"
@echo "Scripts directory: $(SCRIPT_DIR)"
install:
@$(call RUN_SCRIPT,install)
run:
@$(call RUN_SCRIPT,run)
restart:
@$(call RUN_SCRIPT,restart)
test:
@$(call RUN_SCRIPT,test)
test-xml:
ifeq ($(OS),Windows_NT)
@pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) -r xml
else
@bash ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) --report xml
endif
test-html:
ifeq ($(OS),Windows_NT)
@pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) -r html
else
@bash ./$(SCRIPT_DIR)/test$(SCRIPT_EXT) --report html
endif
uninstall:
@echo "This will remove all Docker containers, volumes, and generated files."
ifeq ($(OS),Windows_NT)
@pwsh -Command "$$confirm = Read-Host 'Continue? [y/N]'; if ($$confirm -eq 'y') { pwsh -ExecutionPolicy Bypass -File ./$(SCRIPT_DIR)/uninstall$(SCRIPT_EXT) } else { Write-Host 'Uninstall cancelled.' }"
else
@read -p "Continue? [y/N] " confirm && [ "$$confirm" = "y" ] && bash ./$(SCRIPT_DIR)/uninstall$(SCRIPT_EXT) || echo "Uninstall cancelled."
endif
backup:
@$(call RUN_SCRIPT,backup)
generate-env:
@$(call RUN_SCRIPT,generate-environment-file)
export-env:
@$(call RUN_SCRIPT,export-environment-file)
make-messages:
@$(call RUN_SCRIPT,make-messages)
compile-messages:
@$(call RUN_SCRIPT,compile-messages)
format:
@ruff format
check:
@ruff check
typecheck:
@ty check
precommit: format check typecheck

317
README.md
View file

@ -1,132 +1,263 @@
# eVibes # Schon
![LOGO](engine/core/docs/images/evibes-big.png) ![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)
![Django 5.2](https://img.shields.io/badge/django-5.2-green.svg)
![License](https://img.shields.io/badge/license-Custom-red.svg)
![Version](https://img.shields.io/badge/version-2026.1-purple.svg)
eVibes — a lightweight, production-ready ecommerce backend. Storefront, product catalog, cart, and orders work out of the box. Minimal complexity, maximum flexibility — install, adjust to your needs, and start selling. <p align="center">
<img src="engine/core/static/logo.png" alt="Schon Logo" width="200"/>
</p>
- Public issues: https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=kanban **Schon** is a production-ready e-commerce backend. Storefront, product catalog, cart, orders, and payments work out of the box. Minimal complexity, maximum flexibility.
## Table of Contents ---
- Features ## What is Schon?
- Quick Start
- Prerequisites Schon is a complete backend solution for online stores. Whether you're launching a small shop or scaling a marketplace, Schon provides the foundation:
- Installation
- Configuration - **Ready to use** - Clone, configure, deploy. No assembly required.
- Dockerfile - **API-first** - REST and GraphQL endpoints for any frontend framework.
- nginx - **Multilingual** - 28 languages supported out of the box.
- .env - **Extensible** - Modular Django apps, easy to customize.
- Usage
- Contributing ---
- Contact
- License
## Features ## Features
- Modular backend, easy to extend and customize | Category | Details |
- Dockerized deployment with Docker Compose |----------|---------|
- Celery workers and beat for background tasks | **Framework** | Django 5.2, Django REST Framework 3.16, Graphene-Django |
- REST and GraphQL APIs | **Database** | PostgreSQL with PostGIS, Redis caching, Elasticsearch search |
- Internationalization with modeltranslation | **Tasks** | Celery workers with Redis broker, scheduled tasks with Beat |
- Redis-based caching and queues | **Auth** | JWT authentication, rate limiting, custom user model (email-based) |
- JWT auth and rate limiting | **APIs** | REST + GraphQL, Swagger/ReDoc documentation |
| **i18n** | 28 languages, model translation support |
| **Deployment** | Docker Compose or native Linux with systemd |
---
## Quick Start ## Quick Start
### Prerequisites ### Prerequisites
- Docker and Docker Compose - Git
- Docker and Docker Compose **or** Linux with Python 3.12+, PostgreSQL, Redis, Elasticsearch
### Installation ### Docker (Recommended for Development)
1. Clone the repository
```bash ```bash
git clone https://gitlab.com/wiseless.xyz/eVibes.git # Clone the repository
cd eVibes git clone https://git.wiseless.xyz/fureunoir/schon
cd schon
# Generate environment file
make generate-env
# Review and adjust .env as needed
nano .env
# Install (pull and build images)
make install
# Start all services
make run
``` ```
2. Choose a storefront (optional). The `main` branch ships without a storefront. If you want one, pick a branch: ### Native Linux (Production)
```bash
# Clone to /opt/schon
sudo git clone https://git.wiseless.xyz/fureunoir/schon /opt/schon
cd /opt/schon
# Generate environment file
make generate-env
# Review and adjust .env
sudo nano .env
# Install (creates schon user, syncs dependencies, configures systemd)
sudo make install
# Select option 2: Native Linux
# Start services
sudo systemctl start schon-web schon-worker schon-beat schon-stock-updater
```
### Storefronts
The `main` branch ships backend-only. For a complete store with frontend:
```bash ```bash
git checkout storefront-<nuxt|next|sk|qwik> git checkout storefront-<nuxt|next|sk|qwik>
``` ```
3. Generate your .env file and review its values ---
- Windows
```powershell
scripts\Windows\generate-environment-file.ps1
```
- Unix
```bash
scripts/Unix/generate-environment-file.sh
```
4. Install dependencies
- Windows
```powershell
scripts\Windows\install.ps1
```
- Unix
```bash
scripts/Unix/install.sh
```
5. Run the stack
- Windows
```powershell
scripts\Windows\run.ps1
```
- Unix
```bash
scripts/Unix/run.sh
```
6. Production checklist
- Include `nginx.conf` into your Nginx setup
- Issue TLS certs with Certbot (https://certbot.eff.org/)
## Configuration ## Configuration
### Dockerfile ### Environment Variables
If you rely on locale mirrors, adjust Debian sources before running installation scripts:
``` After running `make generate-env`, review `.env`:
RUN sed -i 's|https://deb.debian.org/debian|https://ftp.<locale>.debian.org/debian|g' /etc/apt/sources.list.d/debian.sources
| Variable | Description |
|----------|-------------|
| `DEBUG` | Set to `0` for production |
| `SECRET_KEY` | Django secret key (auto-generated) |
| `JWT_SIGNING_KEY` | JWT token signing key (auto-generated) |
| `POSTGRES_*` | Database credentials |
| `REDIS_PASSWORD` | Redis authentication |
| `SCHON_PROJECT_NAME` | Your store name |
| `SCHON_BASE_DOMAIN` | Your domain (e.g., `example.com`) |
### Nginx
1. Copy the example config:
```bash
sudo cp nginx.example.conf /etc/nginx/sites-available/schon
``` ```
### nginx 2. Update domain names and paths in the config
- Comment out SSL-related lines
- Apply your domain-specific settings
- Run `certbot --cert-only --nginx`
- Uncomment SSL lines and reload Nginx
### .env 3. Enable the site:
After generation, review and update secrets and credentials (API keys, DB password, Redis password, etc.). ```bash
sudo ln -s /etc/nginx/sites-available/schon /etc/nginx/sites-enabled/
```
## Usage 4. Obtain SSL certificates:
```bash
sudo certbot --nginx -d api.yourdomain.com -d yourdomain.com -d www.yourdomain.com
```
- DNS records youll typically want: 5. Reload Nginx:
1. @.your-domain.com ```bash
2. www.your-domain.com sudo systemctl reload nginx
3. api.your-domain.com ```
4. prometheus.your-domain.com
- Once running, access: ### DNS Records
- API root / Admin redirect: http://api.localhost:8000/
- REST docs: http://api.localhost:8000/docs/swagger or http://api.localhost:8000/docs/redoc
- GraphQL: http://api.localhost:8000/graphql/
## Contributing Configure these DNS records pointing to your server:
- Track and report issues here: https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=list - `yourdomain.com` (A record)
- Pull requests are welcome. Please keep changes minimal and focused. - `www.yourdomain.com` (A or CNAME)
- `api.yourdomain.com` (A or CNAME)
- `prometheus.yourdomain.com` (A or CNAME, optional)
## Contact ---
- Author: Egor "fureunoir" Gorbunov ## API Documentation
- Email: contact@fureunoir.com
- Telegram: https://t.me/fureunoir Once running, access the API documentation:
| Endpoint | Description |
|----------|-------------|
| `http://api.localhost:8000/` | API root / Admin redirect |
| `http://api.localhost:8000/docs/swagger/` | Swagger UI |
| `http://api.localhost:8000/docs/redoc/` | ReDoc |
| `http://api.localhost:8000/graphql/` | GraphQL Playground |
| `http://api.localhost:8000/admin/` | Django Admin |
| `http://api.localhost:8000/health/` | Health check endpoint |
Authentication header: `X-SCHON-AUTH: Bearer <token>`
---
## Development
### Commands
```bash
make run # Start services
make restart # Restart services
make test # Run tests with coverage
make format # Format code with Ruff
make check # Lint code with Ruff
make typecheck # Type check with ty
make precommit # Run format, check, typecheck
make make-messages # Extract translation strings
make compile-messages # Compile translations
make backup # Create database backup
```
### Running Migrations
```bash
# Docker
docker compose exec app uv run python manage.py migrate
# Native
cd /opt/schon && .venv/bin/python manage.py migrate
```
### Creating a Superuser
```bash
# Docker
docker compose exec app uv run python manage.py createsuperuser
# Native
cd /opt/schon && .venv/bin/python manage.py createsuperuser
```
---
## Project Structure
```
schon/
├── schon/ # Django project settings
│ ├── settings/ # Split settings (base, drf, celery, etc.)
│ ├── middleware.py # Custom middleware
│ └── urls.py # URL routing
├── engine/ # Django apps
│ ├── core/ # Products, orders, categories, vendors
│ ├── payments/ # Transactions, payment gateways
│ ├── vibes_auth/ # Custom User model, JWT auth
│ └── blog/ # Blog posts
├── Dockerfiles/ # Docker configurations
├── systemd/ # Systemd service files
├── scripts/ # Installation and utility scripts
└── nginx.example.conf # Nginx configuration template
```
---
## Feedback & Issues
We value your feedback. Please open issues for:
- Bug reports
- Feature suggestions
- Questions about usage
**Issue Tracker:** [Plane](https://plane.wiseless.xyz/spaces/issues/dd33cb0ab9b04ef08a10f7eefae6d90c/?board=kanban)
Due to licensing restrictions, we cannot accept pull requests. See the LICENSE file for details.
---
## License ## License
This project is licensed under the terms of the LICENSE file included in this repository. Schon is released under a custom license. Key points:
![FAVICON](engine/core/docs/images/evibes.png) - **Non-commercial use**: Free for personal, academic, and non-commercial purposes
- **Commercial use**: Requires written authorization or automatic 8% royalty
See the [LICENSE](LICENSE) file for complete terms.
---
## Contact
**Author:** Egor "fureunoir" Gorbunov
- Email: [contact@fureunoir.com](mailto:contact@fureunoir.com)
- Telegram: [@fureunoir](https://t.me/fureunoir)
---
<p align="center">
<sub>Built with care by the Wiseless Team</sub>
</p>

View file

@ -147,7 +147,7 @@ services:
condition: service_healthy condition: service_healthy
logging: *default-logging logging: *default-logging
healthcheck: healthcheck:
test: [ "CMD-SHELL", "celery -A evibes status | grep -q 'OK'" ] test: [ "CMD-SHELL", "celery -A schon status | grep -q 'OK'" ]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 5 retries: 5
@ -175,7 +175,7 @@ services:
condition: service_healthy condition: service_healthy
logging: *default-logging logging: *default-logging
healthcheck: healthcheck:
test: [ "CMD-SHELL", "celery -A evibes status | grep -q 'OK'" ] test: [ "CMD-SHELL", "celery -A schon status | grep -q 'OK'" ]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 5 retries: 5

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,11 +1,11 @@
# EVIBES GETTEXT TRANSLATIONS # SCHON GETTEXT TRANSLATIONS
# Copyright (C) 2025 EGOR <FUREUNOIR> GORBUNOV # Copyright (C) 2025 EGOR <FUREUNOIR> GORBUNOV
# This file is distributed under the same license as the EVIBES package. # This file is distributed under the same license as the SCHON package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025. # EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,11 +1,11 @@
# EVIBES GETTEXT TRANSLATIONS # SCHON GETTEXT TRANSLATIONS
# Copyright (C) 2025 EGOR <FUREUNOIR> GORBUNOV # Copyright (C) 2025 EGOR <FUREUNOIR> GORBUNOV
# This file is distributed under the same license as the EVIBES package. # This file is distributed under the same license as the SCHON package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025. # EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,11 +1,11 @@
# EVIBES GETTEXT TRANSLATIONS # SCHON GETTEXT TRANSLATIONS
# Copyright (C) 2025 EGOR <FUREUNOIR> GORBUNOV # Copyright (C) 2025 EGOR <FUREUNOIR> GORBUNOV
# This file is distributed under the same license as the EVIBES package. # This file is distributed under the same license as the SCHON package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025. # EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n" "POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-06-16 08:59+0100\n" "PO-Revision-Date: 2025-06-16 08:59+0100\n"

View file

@ -7,7 +7,7 @@ from engine.blog.docs.drf.viewsets import POST_SCHEMA
from engine.blog.filters import PostFilter from engine.blog.filters import PostFilter
from engine.blog.models import Post from engine.blog.models import Post
from engine.blog.serializers import PostSerializer from engine.blog.serializers import PostSerializer
from engine.core.permissions import EvibesPermission from engine.core.permissions import SchonPermission
@extend_schema_view(**POST_SCHEMA) @extend_schema_view(**POST_SCHEMA)
@ -20,7 +20,7 @@ class PostViewSet(ReadOnlyModelViewSet):
) )
serializer_class = PostSerializer serializer_class = PostSerializer
permission_classes = (EvibesPermission,) permission_classes = (SchonPermission,)
queryset = Post.objects.filter(is_active=True) queryset = Post.objects.filter(is_active=True)
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend]
filterset_class = PostFilter filterset_class = PostFilter

View file

@ -155,7 +155,7 @@ class ActivationActionsMixin:
] ]
@action( @action(
description=_("activate selected %(verbose_name_plural)s").lower(), description=_("activate selected %(verbose_name_plural)s").lower().title(),
permissions=["change"], permissions=["change"],
) )
def activate_selected(self, request: HttpRequest, queryset: QuerySet[Any]) -> None: def activate_selected(self, request: HttpRequest, queryset: QuerySet[Any]) -> None:
@ -163,7 +163,7 @@ class ActivationActionsMixin:
queryset.update(is_active=True) queryset.update(is_active=True)
self.message_user( self.message_user(
request=request, request=request,
message=_("selected items have been activated.").lower(), message=_("selected items have been activated.").lower().title(),
level=messages.SUCCESS, level=messages.SUCCESS,
) )
@ -171,7 +171,7 @@ class ActivationActionsMixin:
self.message_user(request=request, message=str(e), level=messages.ERROR) self.message_user(request=request, message=str(e), level=messages.ERROR)
@action( @action(
description=_("deactivate selected %(verbose_name_plural)s").lower(), description=_("deactivate selected %(verbose_name_plural)s").lower().title(),
permissions=["change"], permissions=["change"],
) )
def deactivate_selected( def deactivate_selected(
@ -181,7 +181,7 @@ class ActivationActionsMixin:
queryset.update(is_active=False) queryset.update(is_active=False)
self.message_user( self.message_user(
request=request, request=request,
message=_("selected items have been deactivated.").lower(), message=_("selected items have been deactivated.").lower().title(),
level=messages.SUCCESS, level=messages.SUCCESS,
) )
@ -458,6 +458,8 @@ class ProductAdmin(
"sku", "sku",
"name", "name",
"is_active", "is_active",
"export_to_marketplaces",
"has_images",
"category", "category",
"brand", "brand",
"price", "price",
@ -519,6 +521,60 @@ class ProductAdmin(
"is_updatable", "is_updatable",
] ]
def has_images(self, obj: Product) -> bool:
return obj.has_images
has_images.boolean = True # ty:ignore[unresolved-attribute]
has_images.short_description = _("has images") # ty:ignore[unresolved-attribute]
@action(
description=_("export selected %(verbose_name_plural)s to marketplaces' feeds")
.lower()
.title(),
permissions=["change"],
)
def export_to_marketplaces(
self, request: HttpRequest, queryset: QuerySet[Any]
) -> None:
try:
queryset.update(export_to_marketplaces=True)
self.message_user(
request=request,
message=_(
"selected %(verbose_name_plural)s have been marked for export."
)
.lower()
.title(),
level=messages.SUCCESS,
)
except Exception as e:
self.message_user(request=request, message=str(e), level=messages.ERROR)
@action(
description=_("ban selected %(verbose_name_plural)s from marketplaces' feeds")
.lower()
.title(),
permissions=["change"],
)
def ban_from_marketplaces(
self, request: HttpRequest, queryset: QuerySet[Any]
) -> None:
try:
queryset.update(export_to_marketplaces=False)
self.message_user(
request=request,
message=_(
"selected %(verbose_name_plural)s have been banned from export."
)
.lower()
.title(),
level=messages.SUCCESS,
)
except Exception as e:
self.message_user(request=request, message=str(e), level=messages.ERROR)
def get_queryset(self, request): def get_queryset(self, request):
return ( return (
super() super()
@ -1090,7 +1146,7 @@ class ConstanceConfig:
site.unregister([Config]) # ty:ignore[invalid-argument-type] site.unregister([Config]) # ty:ignore[invalid-argument-type]
site.register([ConstanceConfig], BaseConstanceAdmin) # ty:ignore[invalid-argument-type] site.register([ConstanceConfig], BaseConstanceAdmin) # ty:ignore[invalid-argument-type]
site.site_title = settings.PROJECT_NAME site.site_title = settings.PROJECT_NAME
site.site_header = "eVibes" site.site_header = "Schon"
site.index_title = settings.PROJECT_NAME site.index_title = settings.PROJECT_NAME

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

View file

@ -1,25 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="100.000000pt" height="100.000000pt" viewBox="0 0 100.000000 100.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,100.000000) scale(0.100000,-0.100000)"
fill="#7965D1" stroke="none">
<path d="M678 935 c-73 -50 -88 -121 -38 -175 29 -31 50 -35 57 -13 2 6 -5 14
-16 18 -30 9 -26 48 9 88 63 72 130 72 149 -1 18 -67 -6 -117 -89 -182 -97
-76 -142 -97 -235 -109 -121 -16 -324 -29 -380 -24 -48 5 -49 4 -33 -13 26
-26 108 -34 248 -23 308 23 362 40 480 147 l65 59 0 64 c0 79 -17 114 -72 152
-61 41 -100 44 -145 12z"/>
<path d="M327 912 c-10 -10 -17 -27 -17 -38 0 -24 35 -64 55 -64 18 0 19 12 3
28 -16 16 19 54 46 50 17 -2 22 -11 24 -45 4 -55 -38 -105 -105 -124 -50 -14
-179 -17 -225 -6 -34 9 -36 -3 -6 -23 55 -35 251 -29 327 10 95 48 92 168 -6
219 -33 17 -78 13 -96 -7z"/>
<path d="M475 435 c-60 -8 -171 -19 -245 -25 -74 -7 -137 -14 -139 -16 -2 -2
9 -9 25 -16 35 -15 179 -13 309 3 50 7 146 12 215 13 186 2 223 -22 185 -119
-20 -53 -49 -78 -115 -100 -37 -12 -54 -14 -69 -5 -41 21 -16 91 36 105 27 6
27 7 9 21 -31 22 -69 17 -99 -14 -15 -15 -27 -34 -27 -42 0 -23 52 -90 81
-106 43 -22 73 -17 144 22 73 40 93 64 102 118 21 131 -138 193 -412 161z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -25,7 +25,7 @@ from engine.core.utils.emailing import contact_us_email
from engine.core.utils.messages import permission_denied_message from engine.core.utils.messages import permission_denied_message
from engine.core.utils.nominatim import fetch_address_suggestions from engine.core.utils.nominatim import fetch_address_suggestions
from engine.payments.graphene.object_types import TransactionType from engine.payments.graphene.object_types import TransactionType
from evibes.utils.renderers import camelize from schon.utils.renderers import camelize
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View file

@ -57,7 +57,7 @@ from engine.core.utils.seo_builders import (
website_schema, website_schema,
) )
from engine.payments.graphene.object_types import TransactionType from engine.payments.graphene.object_types import TransactionType
from evibes.utils.renderers import camelize from schon.utils.renderers import camelize
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3157,8 +3157,8 @@ msgstr ""
"Django للتعامل مع إعادة توجيه HTTP." "Django للتعامل مع إعادة توجيه HTTP."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "إرجاع الإصدار الحالي من eVibes." msgstr "إرجاع الإصدار الحالي من Schon."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3171,15 +3171,15 @@ msgstr "إرجاع المتغيرات المخصصة للوحة التحكم."
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"يحدد مجموعة طرق عرض لإدارة العمليات المتعلقة ب Evibes. يرث صنف EvibesViewSet " "يحدد مجموعة طرق عرض لإدارة العمليات المتعلقة ب schon. يرث صنف SchonViewSet "
"من ModelViewSet ويوفر وظائف للتعامل مع الإجراءات والعمليات على كيانات " "من ModelViewSet ويوفر وظائف للتعامل مع الإجراءات والعمليات على كيانات "
"Evibes. وتتضمن دعمًا لفئات المتسلسلات الديناميكية استنادًا إلى الإجراء الحالي، " "schon. وتتضمن دعمًا لفئات المتسلسلات الديناميكية استنادًا إلى الإجراء الحالي، "
"والأذونات القابلة للتخصيص، وتنسيقات العرض." "والأذونات القابلة للتخصيص، وتنسيقات العرض."
#: engine/core/viewsets.py:160 #: engine/core/viewsets.py:160
@ -3252,14 +3252,14 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
msgstr "" msgstr ""
"يدير العمليات المتعلقة بنموذج \"المنتج\" في النظام. توفر هذه الفئة مجموعة " "يدير العمليات المتعلقة بنموذج \"المنتج\" في النظام. توفر هذه الفئة مجموعة "
"طرق عرض لإدارة المنتجات، بما في ذلك تصفيتها وتسلسلها وعملياتها على مثيلات " "طرق عرض لإدارة المنتجات، بما في ذلك تصفيتها وتسلسلها وعملياتها على مثيلات "
"محددة. وهو يمتد من 'EvibesViewSet' لاستخدام الوظائف الشائعة ويتكامل مع إطار " "محددة. وهو يمتد من 'SchonViewSet' لاستخدام الوظائف الشائعة ويتكامل مع إطار "
"عمل Django REST لعمليات RESTful API. يتضمن أساليب لاسترجاع تفاصيل المنتج، " "عمل Django REST لعمليات RESTful API. يتضمن أساليب لاسترجاع تفاصيل المنتج، "
"وتطبيق الأذونات، والوصول إلى الملاحظات ذات الصلة بمنتج ما." "وتطبيق الأذونات، والوصول إلى الملاحظات ذات الصلة بمنتج ما."
@ -3282,7 +3282,7 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"تمثيل مجموعة عرض تتعامل مع كائنات الملاحظات. تدير هذه الفئة العمليات " "تمثيل مجموعة عرض تتعامل مع كائنات الملاحظات. تدير هذه الفئة العمليات "

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3226,8 +3226,8 @@ msgstr ""
"funkci `redirect` Djanga." "funkci `redirect` Djanga."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "Vrací aktuální verzi systému eVibes." msgstr "Vrací aktuální verzi systému Schon."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3240,15 +3240,15 @@ msgstr "Vrací vlastní proměnné pro Dashboard."
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"Definuje sadu pohledů pro správu operací souvisejících s Evibes. Třída " "Definuje sadu pohledů pro správu operací souvisejících s schon. Třída "
"EvibesViewSet dědí z ModelViewSet a poskytuje funkce pro zpracování akcí a " "SchonViewSet dědí z ModelViewSet a poskytuje funkce pro zpracování akcí a "
"operací s entitami Evibes. Zahrnuje podporu dynamických tříd serializátorů " "operací s entitami schon. Zahrnuje podporu dynamických tříd serializátorů "
"na základě aktuální akce, přizpůsobitelných oprávnění a formátů vykreslování." "na základě aktuální akce, přizpůsobitelných oprávnění a formátů vykreslování."
#: engine/core/viewsets.py:160 #: engine/core/viewsets.py:160
@ -3325,7 +3325,7 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3333,7 +3333,7 @@ msgstr ""
"Spravuje operace související s modelem `Product` v systému. Tato třída " "Spravuje operace související s modelem `Product` v systému. Tato třída "
"poskytuje sadu pohledů pro správu produktů, včetně jejich filtrování, " "poskytuje sadu pohledů pro správu produktů, včetně jejich filtrování, "
"serializace a operací s konkrétními instancemi. Rozšiřuje se z " "serializace a operací s konkrétními instancemi. Rozšiřuje se z "
"`EvibesViewSet`, aby využívala společné funkce, a integruje se s rámcem " "`SchonViewSet`, aby využívala společné funkce, a integruje se s rámcem "
"Django REST pro operace RESTful API. Obsahuje metody pro načítání " "Django REST pro operace RESTful API. Obsahuje metody pro načítání "
"podrobností o produktu, uplatňování oprávnění a přístup k související zpětné " "podrobností o produktu, uplatňování oprávnění a přístup k související zpětné "
"vazbě produktu." "vazbě produktu."
@ -3358,7 +3358,7 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"Reprezentace sady zobrazení, která zpracovává objekty zpětné vazby. Tato " "Reprezentace sady zobrazení, která zpracovává objekty zpětné vazby. Tato "
@ -3366,7 +3366,7 @@ msgstr ""
"filtrování a načítání podrobností. Účelem této sady zobrazení je poskytnout " "filtrování a načítání podrobností. Účelem této sady zobrazení je poskytnout "
"různé serializátory pro různé akce a implementovat manipulaci s přístupnými " "různé serializátory pro různé akce a implementovat manipulaci s přístupnými "
"objekty Zpětné vazby na základě oprávnění. Rozšiřuje základní třídu " "objekty Zpětné vazby na základě oprávnění. Rozšiřuje základní třídu "
"`EvibesViewSet` a využívá systém filtrování Djanga pro dotazování na data." "`SchonViewSet` a využívá systém filtrování Djanga pro dotazování na data."
#: engine/core/viewsets.py:652 #: engine/core/viewsets.py:652
msgid "" msgid ""

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3250,8 +3250,8 @@ msgstr ""
"til at håndtere HTTP-omdirigeringen." "til at håndtere HTTP-omdirigeringen."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "Returnerer den aktuelle version af eVibes." msgstr "Returnerer den aktuelle version af Schon."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3264,15 +3264,15 @@ msgstr "Returnerer brugerdefinerede variabler til Dashboard."
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"Definerer et visningssæt til håndtering af Evibes-relaterede operationer. " "Definerer et visningssæt til håndtering af schon-relaterede operationer. "
"EvibesViewSet-klassen arver fra ModelViewSet og giver funktionalitet til " "SchonViewSet-klassen arver fra ModelViewSet og giver funktionalitet til "
"håndtering af handlinger og operationer på Evibes-enheder. Den omfatter " "håndtering af handlinger og operationer på schon-enheder. Den omfatter "
"understøttelse af dynamiske serializer-klasser baseret på den aktuelle " "understøttelse af dynamiske serializer-klasser baseret på den aktuelle "
"handling, tilladelser, der kan tilpasses, og gengivelsesformater." "handling, tilladelser, der kan tilpasses, og gengivelsesformater."
@ -3350,7 +3350,7 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3358,7 +3358,7 @@ msgstr ""
"Håndterer operationer relateret til `Product`-modellen i systemet. Denne " "Håndterer operationer relateret til `Product`-modellen i systemet. Denne "
"klasse giver et visningssæt til håndtering af produkter, herunder deres " "klasse giver et visningssæt til håndtering af produkter, herunder deres "
"filtrering, serialisering og operationer på specifikke forekomster. Den " "filtrering, serialisering og operationer på specifikke forekomster. Den "
"udvider fra `EvibesViewSet` for at bruge fælles funktionalitet og integrerer " "udvider fra `SchonViewSet` for at bruge fælles funktionalitet og integrerer "
"med Django REST-frameworket til RESTful API-operationer. Indeholder metoder " "med Django REST-frameworket til RESTful API-operationer. Indeholder metoder "
"til at hente produktoplysninger, anvende tilladelser og få adgang til " "til at hente produktoplysninger, anvende tilladelser og få adgang til "
"relateret feedback om et produkt." "relateret feedback om et produkt."
@ -3384,7 +3384,7 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"Repræsentation af et visningssæt, der håndterer feedback-objekter. Denne " "Repræsentation af et visningssæt, der håndterer feedback-objekter. Denne "
@ -3392,7 +3392,7 @@ msgstr ""
"filtrering og hentning af detaljer. Formålet med dette visningssæt er at " "filtrering og hentning af detaljer. Formålet med dette visningssæt er at "
"levere forskellige serializers til forskellige handlinger og implementere " "levere forskellige serializers til forskellige handlinger og implementere "
"tilladelsesbaseret håndtering af tilgængelige feedback-objekter. Det udvider " "tilladelsesbaseret håndtering af tilgængelige feedback-objekter. Det udvider "
"basen `EvibesViewSet` og gør brug af Djangos filtreringssystem til at " "basen `SchonViewSet` og gør brug af Djangos filtreringssystem til at "
"forespørge på data." "forespørge på data."
#: engine/core/viewsets.py:652 #: engine/core/viewsets.py:652

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3337,8 +3337,8 @@ msgstr ""
"Django für die Bearbeitung der HTTP-Umleitung." "Django für die Bearbeitung der HTTP-Umleitung."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "Gibt die aktuelle Version von eVibes zurück." msgstr "Gibt die aktuelle Version von Schon zurück."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3351,15 +3351,15 @@ msgstr "Gibt benutzerdefinierte Variablen für das Dashboard zurück."
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"Definiert ein Viewset für die Verwaltung von Evibes-bezogenen Operationen. " "Definiert ein Viewset für die Verwaltung von schon-bezogenen Operationen. "
"Die Klasse EvibesViewSet erbt von ModelViewSet und bietet Funktionalität für " "Die Klasse SchonViewSet erbt von ModelViewSet und bietet Funktionalität für "
"die Handhabung von Aktionen und Operationen auf Evibes-Entitäten. Sie " "die Handhabung von Aktionen und Operationen auf schon-Entitäten. Sie "
"enthält Unterstützung für dynamische Serialisiererklassen auf der Grundlage " "enthält Unterstützung für dynamische Serialisiererklassen auf der Grundlage "
"der aktuellen Aktion, anpassbare Berechtigungen und Rendering-Formate." "der aktuellen Aktion, anpassbare Berechtigungen und Rendering-Formate."
@ -3440,7 +3440,7 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3448,7 +3448,7 @@ msgstr ""
"Verwaltet Vorgänge im Zusammenhang mit dem Modell \"Produkt\" im System. " "Verwaltet Vorgänge im Zusammenhang mit dem Modell \"Produkt\" im System. "
"Diese Klasse bietet ein Viewset für die Verwaltung von Produkten, " "Diese Klasse bietet ein Viewset für die Verwaltung von Produkten, "
"einschließlich ihrer Filterung, Serialisierung und Operationen für bestimmte " "einschließlich ihrer Filterung, Serialisierung und Operationen für bestimmte "
"Instanzen. Sie ist eine Erweiterung von `EvibesViewSet`, um gemeinsame " "Instanzen. Sie ist eine Erweiterung von `SchonViewSet`, um gemeinsame "
"Funktionen zu nutzen und integriert sich in das Django REST Framework für " "Funktionen zu nutzen und integriert sich in das Django REST Framework für "
"RESTful API Operationen. Enthält Methoden zum Abrufen von Produktdetails, " "RESTful API Operationen. Enthält Methoden zum Abrufen von Produktdetails, "
"zur Anwendung von Berechtigungen und zum Zugriff auf zugehörige " "zur Anwendung von Berechtigungen und zum Zugriff auf zugehörige "
@ -3475,7 +3475,7 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"Darstellung eines View-Sets, das Feedback-Objekte behandelt. Diese Klasse " "Darstellung eines View-Sets, das Feedback-Objekte behandelt. Diese Klasse "
@ -3483,7 +3483,7 @@ msgstr ""
"Auflistung, Filterung und Abruf von Details. Der Zweck dieses ViewSets ist " "Auflistung, Filterung und Abruf von Details. Der Zweck dieses ViewSets ist "
"es, verschiedene Serialisierer für verschiedene Aktionen bereitzustellen und " "es, verschiedene Serialisierer für verschiedene Aktionen bereitzustellen und "
"eine erlaubnisbasierte Handhabung von zugänglichen Feedback-Objekten zu " "eine erlaubnisbasierte Handhabung von zugänglichen Feedback-Objekten zu "
"implementieren. Es erweitert das Basis `EvibesViewSet` und nutzt das " "implementieren. Es erweitert das Basis `SchonViewSet` und nutzt das "
"Filtersystem von Django zur Abfrage von Daten." "Filtersystem von Django zur Abfrage von Daten."
#: engine/core/viewsets.py:652 #: engine/core/viewsets.py:652

View file

@ -1,11 +1,11 @@
# eVibes Translations. # Schon Translations.
# Copyright (C) 2025 Egor "fureunoir" Gorbunov # Copyright (C) 2025 Egor "fureunoir" Gorbunov
# This file is distributed under the same license as the eVibes package. # This file is distributed under the same license as the Schon package.
# EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025. # EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>, 2025.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3190,8 +3190,8 @@ msgstr ""
"It uses Django's `redirect` function for handling the HTTP redirection." "It uses Django's `redirect` function for handling the HTTP redirection."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "Returns current version of the eVibes." msgstr "Returns current version of the Schon."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3204,15 +3204,15 @@ msgstr "Returns custom variables for Dashboard."
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
@ -3289,7 +3289,7 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3297,7 +3297,7 @@ msgstr ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3322,14 +3322,14 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"Representation of a view set handling Feedback objects. This class manages " "Representation of a view set handling Feedback objects. This class manages "
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
#: engine/core/viewsets.py:652 #: engine/core/viewsets.py:652

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3185,8 +3185,8 @@ msgstr ""
"It uses Django's `redirect` function for handling the HTTP redirection." "It uses Django's `redirect` function for handling the HTTP redirection."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "Returns current version of the eVibes." msgstr "Returns current version of the Schon."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3199,15 +3199,15 @@ msgstr "Returns custom variables for Dashboard."
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
@ -3284,7 +3284,7 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3292,7 +3292,7 @@ msgstr ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3317,14 +3317,14 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"Representation of a view set handling Feedback objects. This class manages " "Representation of a view set handling Feedback objects. This class manages "
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
#: engine/core/viewsets.py:652 #: engine/core/viewsets.py:652

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3275,8 +3275,8 @@ msgstr ""
"Django para gestionar la redirección HTTP." "Django para gestionar la redirección HTTP."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "Devuelve la versión actual del eVibes." msgstr "Devuelve la versión actual del Schon."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3289,15 +3289,15 @@ msgstr "Devuelve variables personalizadas para Dashboard."
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"Define un conjunto de vistas para gestionar operaciones relacionadas con " "Define un conjunto de vistas para gestionar operaciones relacionadas con "
"Evibes. La clase EvibesViewSet hereda de ModelViewSet y proporciona " "schon. La clase SchonViewSet hereda de ModelViewSet y proporciona "
"funcionalidad para manejar acciones y operaciones sobre entidades Evibes. " "funcionalidad para manejar acciones y operaciones sobre entidades schon. "
"Incluye soporte para clases serializadoras dinámicas basadas en la acción " "Incluye soporte para clases serializadoras dinámicas basadas en la acción "
"actual, permisos personalizables y formatos de representación." "actual, permisos personalizables y formatos de representación."
@ -3377,7 +3377,7 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3385,7 +3385,7 @@ msgstr ""
"Gestiona las operaciones relacionadas con el modelo `Producto` en el " "Gestiona las operaciones relacionadas con el modelo `Producto` en el "
"sistema. Esta clase proporciona un conjunto de vistas para la gestión de " "sistema. Esta clase proporciona un conjunto de vistas para la gestión de "
"productos, incluyendo su filtrado, serialización y operaciones en instancias " "productos, incluyendo su filtrado, serialización y operaciones en instancias "
"específicas. Se extiende desde `EvibesViewSet` para utilizar funcionalidades " "específicas. Se extiende desde `SchonViewSet` para utilizar funcionalidades "
"comunes y se integra con el framework Django REST para operaciones RESTful " "comunes y se integra con el framework Django REST para operaciones RESTful "
"API. Incluye métodos para recuperar detalles del producto, aplicar permisos " "API. Incluye métodos para recuperar detalles del producto, aplicar permisos "
"y acceder a comentarios relacionados de un producto." "y acceder a comentarios relacionados de un producto."
@ -3411,7 +3411,7 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"Representación de un conjunto de vistas que maneja objetos Feedback. Esta " "Representación de un conjunto de vistas que maneja objetos Feedback. Esta "
@ -3419,7 +3419,7 @@ msgstr ""
"incluyendo el listado, filtrado y recuperación de detalles. El propósito de " "incluyendo el listado, filtrado y recuperación de detalles. El propósito de "
"este conjunto de vistas es proporcionar diferentes serializadores para " "este conjunto de vistas es proporcionar diferentes serializadores para "
"diferentes acciones e implementar el manejo basado en permisos de los " "diferentes acciones e implementar el manejo basado en permisos de los "
"objetos Feedback accesibles. Extiende la base `EvibesViewSet` y hace uso del " "objetos Feedback accesibles. Extiende la base `SchonViewSet` y hace uso del "
"sistema de filtrado de Django para la consulta de datos." "sistema de filtrado de Django para la consulta de datos."
#: engine/core/viewsets.py:652 #: engine/core/viewsets.py:652

View file

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
@ -2975,7 +2975,7 @@ msgid ""
msgstr "" msgstr ""
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "" msgstr ""
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
@ -2989,9 +2989,9 @@ msgstr ""
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The SchonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
@ -3045,7 +3045,7 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`SchonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3066,7 +3066,7 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `SchonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3330,8 +3330,8 @@ msgstr ""
"`redirect` de Django pour gérer la redirection HTTP." "`redirect` de Django pour gérer la redirection HTTP."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "Renvoie la version actuelle d'eVibes." msgstr "Renvoie la version actuelle d'Schon."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3344,15 +3344,15 @@ msgstr "Renvoie les variables personnalisées pour le tableau de bord."
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The schonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"Définit un jeu de vues pour la gestion des opérations liées à Evibes. La " "Définit un jeu de vues pour la gestion des opérations liées à schon. La "
"classe EvibesViewSet hérite de ModelViewSet et fournit des fonctionnalités " "classe schonViewSet hérite de ModelViewSet et fournit des fonctionnalités "
"permettant de gérer les actions et les opérations sur les entités Evibes. " "permettant de gérer les actions et les opérations sur les entités schon. "
"Elle prend en charge les classes de sérialiseurs dynamiques en fonction de " "Elle prend en charge les classes de sérialiseurs dynamiques en fonction de "
"l'action en cours, les autorisations personnalisables et les formats de " "l'action en cours, les autorisations personnalisables et les formats de "
"rendu." "rendu."
@ -3434,7 +3434,7 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`schonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
@ -3442,7 +3442,7 @@ msgstr ""
"Gère les opérations liées au modèle `Product` dans le système. Cette classe " "Gère les opérations liées au modèle `Product` dans le système. Cette classe "
"fournit un viewset pour gérer les produits, y compris leur filtrage, leur " "fournit un viewset pour gérer les produits, y compris leur filtrage, leur "
"sérialisation et les opérations sur des instances spécifiques. Elle s'étend " "sérialisation et les opérations sur des instances spécifiques. Elle s'étend "
"à partir de `EvibesViewSet` pour utiliser des fonctionnalités communes et " "à partir de `schonViewSet` pour utiliser des fonctionnalités communes et "
"s'intègre au framework REST de Django pour les opérations API RESTful. Il " "s'intègre au framework REST de Django pour les opérations API RESTful. Il "
"comprend des méthodes pour récupérer les détails d'un produit, appliquer des " "comprend des méthodes pour récupérer les détails d'un produit, appliquer des "
"permissions et accéder aux commentaires connexes d'un produit." "permissions et accéder aux commentaires connexes d'un produit."
@ -3469,7 +3469,7 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `schonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"Représentation d'un ensemble de vues gérant des objets de retour " "Représentation d'un ensemble de vues gérant des objets de retour "
@ -3478,7 +3478,7 @@ msgstr ""
"l'extraction de détails. L'objectif de ce jeu de vues est de fournir " "l'extraction de détails. L'objectif de ce jeu de vues est de fournir "
"différents sérialiseurs pour différentes actions et d'implémenter une " "différents sérialiseurs pour différentes actions et d'implémenter une "
"gestion basée sur les permissions des objets Feedback accessibles. Il étend " "gestion basée sur les permissions des objets Feedback accessibles. Il étend "
"la classe de base `EvibesViewSet` et utilise le système de filtrage de " "la classe de base `schonViewSet` et utilise le système de filtrage de "
"Django pour l'interrogation des données." "Django pour l'interrogation des données."
#: engine/core/viewsets.py:652 #: engine/core/viewsets.py:652

View file

@ -1,7 +1,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: EVIBES 2026.1\n" "Project-Id-Version: SCHON 2026.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-04 19:25+0300\n" "POT-Creation-Date: 2026-01-04 19:25+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n" "PO-Revision-Date: 2025-01-30 03:27+0000\n"
@ -3114,8 +3114,8 @@ msgstr ""
"Django לטיפול בהפניה HTTP." "Django לטיפול בהפניה HTTP."
#: engine/core/views.py:445 #: engine/core/views.py:445
msgid "Returns current version of the eVibes. " msgid "Returns current version of the Schon. "
msgstr "מחזיר את הגרסה הנוכחית של eVibes." msgstr "מחזיר את הגרסה הנוכחית של Schon."
#: engine/core/views.py:674 engine/core/views.py:689 #: engine/core/views.py:674 engine/core/views.py:689
#, python-format #, python-format
@ -3128,14 +3128,14 @@ msgstr "מחזיר משתנים מותאמים אישית עבור לוח המח
#: engine/core/viewsets.py:139 #: engine/core/viewsets.py:139
msgid "" msgid ""
"Defines a viewset for managing Evibes-related operations. The EvibesViewSet " "Defines a viewset for managing schon-related operations. The schonViewSet "
"class inherits from ModelViewSet and provides functionality for handling " "class inherits from ModelViewSet and provides functionality for handling "
"actions and operations on Evibes entities. It includes support for dynamic " "actions and operations on schon entities. It includes support for dynamic "
"serializer classes based on the current action, customizable permissions, " "serializer classes based on the current action, customizable permissions, "
"and rendering formats." "and rendering formats."
msgstr "" msgstr ""
"מגדיר קבוצת תצוגות לניהול פעולות הקשורות ל-Evibes. מחלקת EvibesViewSet יורשת " "מגדיר קבוצת תצוגות לניהול פעולות הקשורות ל-schon. מחלקת schonViewSet יורשת "
"מ-ModelViewSet ומספקת פונקציונליות לטיפול בפעולות ובפעולות על ישויות Evibes. " "מ-ModelViewSet ומספקת פונקציונליות לטיפול בפעולות ובפעולות על ישויות schon. "
"היא כוללת תמיכה במחלוקות סריאליזציה דינמיות המבוססות על הפעולה הנוכחית, " "היא כוללת תמיכה במחלוקות סריאליזציה דינמיות המבוססות על הפעולה הנוכחית, "
"הרשאות הניתנות להתאמה אישית ופורמטים של עיבוד." "הרשאות הניתנות להתאמה אישית ופורמטים של עיבוד."
@ -3207,14 +3207,14 @@ msgid ""
"Manages operations related to the `Product` model in the system. This class " "Manages operations related to the `Product` model in the system. This class "
"provides a viewset for managing products, including their filtering, " "provides a viewset for managing products, including their filtering, "
"serialization, and operations on specific instances. It extends from " "serialization, and operations on specific instances. It extends from "
"`EvibesViewSet` to use common functionality and integrates with the Django " "`schonViewSet` to use common functionality and integrates with the Django "
"REST framework for RESTful API operations. Includes methods for retrieving " "REST framework for RESTful API operations. Includes methods for retrieving "
"product details, applying permissions, and accessing related feedback of a " "product details, applying permissions, and accessing related feedback of a "
"product." "product."
msgstr "" msgstr ""
"מנהל פעולות הקשורות למודל `Product` במערכת. מחלקה זו מספקת מערך תצוגה לניהול " "מנהל פעולות הקשורות למודל `Product` במערכת. מחלקה זו מספקת מערך תצוגה לניהול "
"מוצרים, כולל סינון, סידור סדרתי ופעולות על מופעים ספציפיים. היא מרחיבה את " "מוצרים, כולל סינון, סידור סדרתי ופעולות על מופעים ספציפיים. היא מרחיבה את "
"`EvibesViewSet` כדי להשתמש בפונקציונליות משותפת ומשתלבת עם מסגרת Django REST " "`schonViewSet` כדי להשתמש בפונקציונליות משותפת ומשתלבת עם מסגרת Django REST "
"עבור פעולות RESTful API. כוללת שיטות לאחזור פרטי מוצר, החלת הרשאות וגישה " "עבור פעולות RESTful API. כוללת שיטות לאחזור פרטי מוצר, החלת הרשאות וגישה "
"למשוב הקשור למוצר." "למשוב הקשור למוצר."
@ -3237,13 +3237,13 @@ msgid ""
"operations related to Feedback objects, including listing, filtering, and " "operations related to Feedback objects, including listing, filtering, and "
"retrieving details. The purpose of this view set is to provide different " "retrieving details. The purpose of this view set is to provide different "
"serializers for different actions and implement permission-based handling of " "serializers for different actions and implement permission-based handling of "
"accessible Feedback objects. It extends the base `EvibesViewSet` and makes " "accessible Feedback objects. It extends the base `schonViewSet` and makes "
"use of Django's filtering system for querying data." "use of Django's filtering system for querying data."
msgstr "" msgstr ""
"ייצוג של קבוצת תצוגה המטפלת באובייקטי משוב. מחלקה זו מנהלת פעולות הקשורות " "ייצוג של קבוצת תצוגה המטפלת באובייקטי משוב. מחלקה זו מנהלת פעולות הקשורות "
"לאובייקטי משוב, כולל רישום, סינון ואחזור פרטים. מטרת קבוצת תצוגה זו היא לספק " "לאובייקטי משוב, כולל רישום, סינון ואחזור פרטים. מטרת קבוצת תצוגה זו היא לספק "
"סדרנים שונים לפעולות שונות וליישם טיפול מבוסס הרשאות באובייקטי משוב נגישים. " "סדרנים שונים לפעולות שונות וליישם טיפול מבוסס הרשאות באובייקטי משוב נגישים. "
"היא מרחיבה את `EvibesViewSet` הבסיסי ומשתמשת במערכת הסינון של Django לשאילתת " "היא מרחיבה את `schonViewSet` הבסיסי ומשתמשת במערכת הסינון של Django לשאילתת "
"נתונים." "נתונים."
#: engine/core/viewsets.py:652 #: engine/core/viewsets.py:652

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