Commit graph

1257 commits

Author SHA1 Message Date
b21bbc8e7b Merge branch 'master' into storefront-nuxt 2026-03-05 16:41:00 +03:00
ea158ab2b5 fix(translations): update DeepL API requests to use Authorization header
Updated DeepL API requests to include the `Authorization` header with the auth key instead of passing it as a form parameter. This aligns with updated API requirements and ensures compatibility.
+ I18N
2026-03-05 16:39:59 +03:00
0194d152fe Merge branch 'master' into storefront-nuxt 2026-03-05 14:14:37 +03:00
38903e0323 refactor(graphene): consolidate address fields into single field address_line
Replaced `address_line_1` and `address_line_2` with `address_line` to simplify the structure and reduce redundancy in the object type definition.
2026-03-05 14:14:22 +03:00
ce172721c1 chore(core): remove unused Source Code Pro ExtraLight font asset
Deleted `Source Code Pro ExtraLight_Regular.json` to clean up unused assets in the core engine. No functional changes.
2026-03-05 14:12:30 +03:00
114204b105 Merge branch 'master' into storefront-nuxt 2026-03-05 14:01:08 +03:00
b914b5fc91 feat(graphene): replace Float with Decimal for price and discount_price
Switched Float fields to Decimal in Graphene for increased precision in monetary values. Updated related queries and resolvers accordingly.

Additionally:
- Added custom DynamicMail health check for runtime-based email configuration.
- Enhanced admin login flow to handle unconfigured email backends by logging users directly.
2026-03-05 14:00:49 +03:00
1f39535f05 Merge branch 'master' into storefront-nuxt 2026-03-05 11:03:54 +03:00
31d9ccb82a refactor(core): simplify code for price aggregation and formatting
Improve readability by removing unnecessary parentheses in `min_price` and `max_price` methods in `models.py`. Enhance JSON serialization error formatting in `views.py` and adjustment of field formatting in serializers. No functional changes, purely stylistic updates for code maintainability.
2026-03-05 11:03:45 +03:00
6955e6bec6 feat(models/serializers): migrate to Decimal for monetary values
Replaced `float` with `Decimal` for monetary calculations to prevent precision loss and enhance accuracy. Updated related models, serializers, and utility functions accordingly.
2026-03-05 11:03:27 +03:00
e0e3c93e63 refactor(scripts): centralize static files collection in Docker entrypoint
Moved static files collection from platform-specific scripts to the Docker entrypoint script. Simplifies maintenance by eliminating redundant logic across Windows, Unix, and restart scripts.

Updated logo/icon settings to use `static()` for better flexibility.
2026-03-05 00:07:41 +03:00
18bb585a13 refactor(scripts): centralize static files collection in Docker entrypoint
Moved static files collection from platform-specific scripts to the Docker entrypoint script. Simplifies maintenance by eliminating redundant logic across Windows, Unix, and restart scripts.

Updated logo/icon settings to use `static()` for better flexibility.
2026-03-05 00:07:17 +03:00
52687beeec Merge branch 'master' into storefront-nuxt 2026-03-04 20:17:40 +03:00
3859445c78 feat(graphene): add address_line_1 and address_line_2 to object types
Expanded the object type fields to include additional address details for better data representation.
2026-03-04 20:17:30 +03:00
01fe4192aa Merge branch 'master' into storefront-nuxt 2026-03-04 19:59:52 +03:00
6ac5636779 feat(graphene): add address line fields to CreateAddress mutation
include `address_line_1` and optional `address_line_2` to enhance address creation functionality.
2026-03-04 19:59:42 +03:00
6c1dbe0c5f feat(graphene): add address line fields to CreateAddress mutation
include `address_line_1` and optional `address_line_2` to enhance address creation functionality.
2026-03-04 19:59:01 +03:00
c889c20b61 feat(storefront): enhance error handling and navigation across pages
Added a global error page to improve user experience during navigation issues, with localized messages and redirect options. Enhanced error handling for brand, product, and category slug composables by introducing explicit 404 responses.

- Introduced `/error.vue` template for custom error displays using `NuxtError`.
- Updated `useBrandBySlug`, `useProductBySlug`, `useCategoryBySlug` to throw 404 errors when data is not found.
- Expanded i18n files (`en-gb.json` and `ru-ru.json`) with additional error-related translations.
- Replaced plain text input with a `.search`-scoped class for cleaner styling.

Enhances robustness and user feedback during navigation errors. No breaking changes introduced.
2026-03-04 16:27:52 +03:00
ef8be78d51 Merge branch 'master' into storefront-nuxt 2026-03-03 16:45:44 +03:00
aba67ec177 Merge remote-tracking branch 'origin/storefront-nuxt' into storefront-nuxt 2026-03-03 15:23:19 +03:00
69c224722e feat(storefront): add promocode support in cart with UI and logic updates
Implemented promocode application feature in the cart, allowing users to select and apply discounts during checkout. Updated GraphQL mutation, cart logic, and UI to support this functionality.

- Enhanced `cart.vue` with a new promocode selection section, including dropdown and styling.
- Modified `buyOrder` mutation to accept `promocodeUuid` and `forceBalance` parameters.
- Updated translations (`en-gb.json` and `ru-ru.json`) to include promocode-related strings.

Improves user experience by enabling discount application directly in the cart. No breaking changes.
2026-03-03 15:23:11 +03:00
29347d1cbc chore(docker): remove unused media-data volume from services
The `media-data` volume was unused and has been removed to simplify the configuration. This helps reduce potential confusion and unused clutter in the `docker-compose.yml` file.
2026-03-03 15:18:11 +03:00
b77c2ec547 chore(docker): remove unused volumes from docker-compose.yml
Cleaned up `static-data` and `media-data` volumes as they are no longer in use, simplifying the configuration.
2026-03-03 15:10:11 +03:00
51e9418e54 Merge branch 'master' into storefront-nuxt 2026-03-03 13:49:55 +03:00
aabd8b18b4 feat(commerce): ensure precise decimal handling in aggregated calculations
replace float-based defaults with `Decimal` in Coalesce and set `DecimalField` as the output type to improve precision when aggregating monetary values.
2026-03-03 13:49:29 +03:00
574dc43d06 Merge branch 'master' into storefront-nuxt 2026-03-03 02:40:55 +03:00
e5553ac6dd refactor(vibes_auth): update admin site structure for cleaner customization
replace `extra_urls` with `get_urls` in `SchonAdminSite` for improved URL handling and compatibility with super-class methods. Simplify `apps.py` to set `SchonAdminSite` directly as the class of `admin.site`.
2026-03-03 02:40:39 +03:00
f557fa462a Merge branch 'master' into storefront-nuxt 2026-03-03 01:50:06 +03:00
304608adc4 feat(elasticsearch): add scripts for cleaning Elasticsearch data
Introduce `delete-elasticsearch` scripts for both Windows and Unix to stop, remove containers, and delete data volumes. Updated `Makefile` to include this command for easier management. Upgraded `django-elasticsearch-dsl` and related dependencies to their latest versions for compatibility.

Breaking change: Updated Elasticsearch image and configuration to enable xpack security. Ensure environment variables are properly set.
2026-03-03 01:44:51 +03:00
ad320235d6 feat(payments, vibes_auth, core): introduce decimal fields, 2FA, and admin OTP
- Refactored monetary fields across models to use `DecimalField` for improved precision.
- Implemented two-factor authentication (2FA) for admin logins with OTP codes.
- Added ability to generate admin OTP via management commands.
- Updated Docker Compose override for dev-specific port bindings.
- Included template for 2FA OTP verification to enhance security.

Additional changes:
- Upgraded and downgraded various dependencies (e.g., django-celery-beat and yarl).
- Replaced float-based calculations with decimal for consistent rounding behavior.
- Improved admin user management commands for activation and OTP generation.
2026-03-03 00:42:21 +03:00
a5a9c70080 fix(mutations): require wishlist_uuid in mutations to ensure data integrity
Made `wishlist_uuid` a required argument to avoid processing without a valid identifier. Prevents potential errors caused by missing wishlist references.
2026-03-02 23:12:38 +03:00
9bf600845a feat(storefront): enhance cart and wishlist handling with cookie-based products support
Introduced `useExactProducts` composable to fetch precise product details for guest cart and wishlist items. Improved cookie-based cart and wishlist fallback handling for unauthenticated users. Updated related components and composables for better synchronization and type safety.

- Added `useExactProducts` composable leveraging the `GET_EXACT_PRODUCTS` query.
- Enhanced `wishlist.vue` and `cart.vue` for reactive updates on guest state changes.
- Improved product synchronization logic in `useOrderSync` and `useWishlistSync`.
- Updated translations and fixed minor typos in localization files.

Improves user experience by ensuring consistent product details, even for guests. No breaking changes.
2026-03-02 23:06:13 +03:00
398e11d748 fix(storefront): rename useBrands to useFeedbacks for correct composable naming
Aligned composable name with its purpose by renaming `useBrands` to `useFeedbacks`. This resolves the naming inconsistency and improves code readability and maintainability.
2026-03-02 13:57:20 +03:00
03dbafaf44 feat(storefront): add feedbacks query and composable for improved data handling
Introduced `GET_FEEDBACKS` GraphQL query and `useFeedbacks` composable to enable retrieval and management of feedback data. Enhanced type safety with new TypeScript interfaces for feedback responses. Updated `Product` fragment to reuse `Feedback` fragment for better modularity.

- Added `feedbacks.ts` query file with `GET_FEEDBACKS`.
- Created `useFeedbacks.ts` composable for reactive feedback fetching and state management.
- Updated GraphQL fragments and `products.fragment.ts` to include `Feedback` reusability.
- Enhanced API type definitions with `IFeedbacksResponse` for response handling.

This improves modularity, type safety, and provides a reusable approach for feedback data integration. No breaking changes.
2026-03-02 13:56:51 +03:00
7e31a80290 Merge branch 'master' into storefront-nuxt 2026-03-02 01:58:36 +03:00
dc94841f40 feat(core/blog): add support for product videos and blog post images
This commit introduces support for uploading optional video files to products and image files to blog posts. Enhanced admin interfaces were added to preview these files directly. Also includes adjustments to GraphQL types and serializers to expose the new fields.
2026-03-02 01:57:57 +03:00
783fca1f28 Merge branch 'master' into storefront-nuxt 2026-03-02 01:31:57 +03:00
d97e9a973b feat(viewsets, schema): unify retrieveExactProducts API in DRF and GraphQL
replace the custom Graphene mutation `RetrieveExactProducts` with a unified DRF implementation using `inline_serializer`. Updated GraphQL schema to resolve `retrieve_exact_products` query using a standardized approach.

This change improves consistency across DRF and GraphQL APIs, reduces duplicate logic, and centralizes request validations.
2026-03-02 01:31:41 +03:00
e60839b896 Merge branch 'master' into storefront-nuxt 2026-03-02 00:53:35 +03:00
85576cf4ad feat(schema): add retrieveExactProducts query to support detailed product retrieval
Added the `RetrieveExactProducts` query to the schema to enable fetching specific product details. This addition enhances the granularity of product data retrieval in the GraphQL API.
2026-03-02 00:53:22 +03:00
56688c9c09 Merge branch 'master' into storefront-nuxt 2026-03-02 00:46:00 +03:00
cffbaf66b3 feat(graphql): make max query depth configurable with environment variable
allow setting `GRAPHQL_MAX_QUERY_DEPTH` via environment variable to provide flexibility in limiting query depth and preventing DoS attacks. Defaults to 13 if not set.
2026-03-02 00:45:42 +03:00
2c4e66832f Merge branch 'master' into storefront-nuxt 2026-03-02 00:33:39 +03:00
6d24ee0c92 refactor(core): use defaults in get_or_create and add annotations
Refactored `get_or_create` calls in `demo_data.py` to use the `defaults` parameter for cleaner code and consistency. Added type annotations for `get_min_price` and `get_max_price` in serializers for improved type safety.
2026-03-02 00:33:21 +03:00
c3b4637044 feat(uninstall): enhance volume removal for additional data types
add handling for postgres-data, redis-data, static-data, and media-data volumes in both Windows and Unix uninstall scripts. Ensures errors are logged if volume removal fails.
2026-03-02 00:15:36 +03:00
adec5503b2 feat(core/auth): enable encryption for sensitive fields and token handling
Add encryption for user PII fields (phone number, name, attributes) and address fields to enhance data security. Introduced timestamped activation tokens for improved validation. Included migrations to encrypt existing plaintext data.

Refactored GraphQL settings to limit query depth and optionally disable introspection for enhanced API defense. Implemented throttling to safeguard API rates.

Improved Dockerfiles for better user management and restored media migration tools for smooth instance upgrades.
2026-03-02 00:11:57 +03:00
c3d23be973 feat(dependencies): add django-fernet-encrypted-fields and update packages
Added `django-fernet-encrypted-fields` for encrypted field support in Django. Updated dependencies including `django-health-check` (4.0.6 → 4.1.0), `django-modeltranslation` (0.19.19 → 0.20.2), and `filelock` (3.24.3 → 3.25.0) to their latest versions for improved functionality and compatibility.
2026-03-01 22:58:49 +03:00
ff99177139 feat(viewsets): add endpoint to retrieve products by identifier
introduce `exact_list` action in `viewsets.py` to retrieve products by `uuid`, `slug`, or `sku` identifiers. Includes input validation and ratelimiting. Adds corresponding schema documentation and a GraphQL mutation for similar functionality.
2026-03-01 22:22:59 +03:00
d4b2839502 feat(storefront): enhance category and product templates with HTML rendering
Updated catalog and product pages to render descriptions using HTML (`v-html`), allowing richer content presentation. Improved characteristics section for products, reintroducing previously commented-out functionality with refined structure and styling.

- Enabled `v-html` in `categorySlug.vue` and `slug.vue` for proper HTML display in descriptions.
- Restored and revamped characteristics section with better styling and layout.
- Adjusted SCSS for consistent typography and spacing in characteristics.

No breaking changes introduced—enhancements improve presentation and maintain code quality.
2026-03-01 22:13:24 +03:00
e8e0675d7d feat(storefront): enhance store filter and price handling for improved UX
Enhanced store filters with a refined price range slider, accommodating category-specific min/max prices and dynamic updates. Optimized reactivity for product filtering by consolidating watchers into a unified approach. Adjusted UI elements for consistent spacing and modern icon usage in filters.

- Added `minMaxPrices` and debounce logic to improve price filtering performance.
- Updated filter UI with collapsible headers and better styling for usability.
- Refactored multiple watchers into a single handler for better efficiency.
- Introduced global constants for currency symbol usage.

Breaking Changes: Components relying on price filters must adapt to new props and event names (`filterMinPrice`, `filterMaxPrice`). Styles may require alignment with refined SCSS rules for filters.
2026-03-01 22:00:34 +03:00