Commit graph

121 commits

Author SHA1 Message Date
2114c8bb76 Features: 1) Add bulk_prefetch_filterable_attributes for optimized attribute fetching; 2) Introduce FilterableAttribute typing for standardizing attribute data across serializers and models; 3) Enhance CategoryDetailSerializer with custom list_serializer_class for bulk operations.
Fixes: 1) Replace redundant `get_filterable_attributes` logic with `filterable_attributes` property to avoid duplications; 2) Remove unnecessary imports and redundant comments in various modules.

Extra: Refactor admin queryset methods for optimization; remove unused `categories` field in `Attribute` model; improve clarity and maintainability of Graphene resolvers and related logic.
2025-10-26 16:21:34 +03:00
4757634ce5 Merge branch 'feature/update-center' 2025-10-21 11:58:27 +03:00
1fed75584e Features: 1) Add migration to enforce unique constraint on Attribute model for fields name, group, and value_type;
Fixes: 1) Remove redundant traceback logging in `core/vendors/__init__.py`;

Extra: 1) Update Attribute model's `unique_together` to include `value_type`.
2025-10-19 00:16:57 +03:00
a700a1c7e6 Features: 1) Update attribute.name and its localized variants to remove the unique constraint and set null=True for optional fields;
Fixes: 1) Correct field attributes in `attribute` model to align with database requirements;

Extra: 1) Generated migration file `0046_alter_attribute_name_alter_attribute_name_ar_ar_and_more.py`.
2025-10-18 22:41:43 +03:00
e894affad7 Features: 1) Add with_related method to managers for optimized prefetching; 2) Add indexes to models for enhanced query performance; 3) Introduce cached_property for feedback count and product quantity; 4) Implement Exists and OuterRef filters for active stock validation in viewsets.
Fixes: 1) Simplify rating and feedback count logic by removing caching layers; 2) Refactor price and quantity calculations for improved accuracy and simplicity; 3) Optimize total price and quantity aggregations in orders by leveraging Django ORM tools.

Extra: Adjusted import statements, removed redundant cache logic, and cleaned up methods for better readability and maintainability.
2025-10-16 14:04:18 +03:00
20d5f5db21 Features: 1) Add support for linking Gateway to transactions including constraints and limits; 2) Implement new Gateway model with transactional rules and currency configurations; 3) Add integration_path field to Vendor for dynamic integrations; 4) Improve task logic to dynamically use vendor integrations for stock updates and order statuses.
Fixes: 1) Replace `IntegerField` with `PositiveIntegerField` for product image priority to enforce positive values.

Extra: 1) Optimize imports for consistent formatting; 2) Clarify logging messages in tasks; 3) Minor docstring and help text updates.
2025-10-15 14:25:58 +03:00
72a96edda1 Features: 3.1.0 2025-10-14 16:46:09 +03:00
e0b2f183ce Features: 1) Extend fieldsets by adding additional_fields support in FieldsetsMixin; 2) Add CRMForm for CustomerRelationshipManagementProviderAdmin; 3) Improve Order.__str__ to use human_readable_id for better debugging context;
Fixes: 1) Replace misplaced imports in `core/admin.py` for proper organization;

Extra: Adjust admin fieldsets for consistency, formatting, and search enhancements; Minor contributions to migration file cleanup.
2025-10-13 16:27:47 +03:00
c8aaae4946 Features: 1) Add last_processing_response field to vendor model with FileField support.
Fixes: 1) Update translation strings for multiple locales to correct formatting issues.

Extra: 1) Update POT creation date across locale files; 2) Minor adjustments to translations for consistency.
2025-10-13 16:11:37 +03:00
9e40323823 Features: 1) Update all locale translations for token-related messages; 2) Update all locale translations with read-only Transaction ViewSet description; 3) Update all locale translations for reset password and token validations;
Fixes: 1) Correct line references in locale files for consistency;

Extra: Improve formatting and alignment of string segments for clarity and maintainability;
2025-10-06 15:58:30 +03:00
e1f9a7cace Features: 1) Update POT-Creation-Date across translation files to reflect the latest changes; 2) Adjust line references in message comments for accurate mappings.
Fixes: 1) Harmonize inconsistent whitespace across translation files.

Extra: Address formatting issues in translation strings for better readability and maintainability.
2025-10-04 01:57:31 +03:00
58e1390d4d Fixes: 1) Correct string argument in hasattr call within download_url method. 2025-10-03 17:38:18 +03:00
6fe1664d57 Fixes: 1) Corrected download attribute check with hasattr to prevent potential AttributeError;
Extra: n/a;
2025-10-03 17:37:20 +03:00
9ad79f0c5e Fixes: 1) Handle missing DigitalAssetDownload instance in download_url method with explicit conditional logic;
Extra: 1) Simplify exception handling by replacing it with clear branch logic.
2025-10-03 17:26:58 +03:00
90d077fefd Features: 1) Add setter method for personal_orders_only in core.models.py;
Fixes: 1) Correct exception handling by replacing `self.download.RelatedObjectDoesNotExist` with `DigitalAssetDownload.RelatedObjectDoesNotExist`;

Extra: None;
2025-10-03 17:16:52 +03:00
d917584829 Features: 1) Replace IntegerField with BooleanField for has_stock, has_price, and personal_orders_only annotations; 2) Modify final ordering logic to append personal_orders_only at the end.
Fixes: 1) Handle missing `download` relation in `download_url` method by creating a new `DigitalAssetDownload` instance.

Extra: 1) Rename `personal_order_only` to `personal_orders_only` for clarity; 2) Remove unused IntegerField import; 3) General cleanup and minor adjustments in filters logic.
2025-10-03 16:56:29 +03:00
63b3a93938 Fixes: 1) Correct logical grouping in personal_orders_only property for clarity and accuracy;
Extra: None;
2025-10-02 17:13:24 +03:00
b1c022b974 Features: 1) Add promocode_uuid field to BuyAsBusinessOrderSerializer; 2) Enhance error handling in buy_without_registration by wrapping in a try-except block and returning appropriate HTTP 2025-10-01 17:59:06 +03:00
330177f6e4 Features: 1) Add # noinspection PyUnusedLocal annotations to various viewsets, filters, and migrations to suppress unnecessary warnings; 2) Improve post method in BusinessPurchaseView to handle exceptions and inactive orders gracefully; 3) Refactor resolve_transactions and related resolvers in Graphene to include more specific typing hints; 4) Include defensive coding for attributes in several models to ensure type safety.
Fixes: 1) Correct default manager assignment in `Product` model; 2) Address potential division by zero in `AbsoluteFTPStorage`; 3) Ensure proper exception handling for missing `order` attributes in CRM gateway methods; 4) Rectify inaccurate string formatting for `Transaction` `__str__` method.

Extra: Refactor various minor code style issues, including formatting corrections in the README, alignment in the emailing utility, and suppressed pycharm-specific inspections; clean up unused imports across files; enhance error messaging consistency.
2025-10-01 17:26:07 +03:00
91ed79669b Features: 1) Enhance __str__ in payments.models.Transaction to handle cases where balance is missing.
Fixes: 1) Adjust feedback creation logic in `core.models` to ensure it is only allowed when `order.status` is `FINISHED`.

Extra: 1) Minor formatting adjustment in `payments.models.Transaction` for improved readability.
2025-10-01 16:47:01 +03:00
a4ec737334 Features: 1) Set address_line_1 as a required field in the serializer;
Fixes: 1) Update Russian locale translation for "order" and "orders";

Extra: 1) Adjust minor formatting in Russian locale files.
2025-10-01 16:30:29 +03:00
6f4e952b9b Features: 1) Added new language options to User model's language field in vibes_auth; 2) Introduced localized title and content fields to Post model in blog; 3) Implemented multilingual support for various fields in Attribute, AttributeGroup, AttributeValue, Brand, Category, CategoryTag, and Product models in core;
Fixes: None;

Extra: None;
2025-09-19 17:02:11 +03:00
79714750fa Features: 1) Update resolve_feedback method to retrieve Feedback object based on order_product; 2) Enhance do_feedback method to handle existing feedback with better validation and support for returning feedback deletion count.
Fixes: 1) Fix handling of feedback deletion to return actual delete count rather than `None`.

Extra: 1) Refactor `do_feedback` method for clarity and improved logic flow; 2) Minor updates to error messages for consistency and accuracy.
2025-09-18 14:44:52 +03:00
17a2b01894 Features: 1) Add feedback field to OrderProduct type; 2) Introduce resolution logic for feedback in OrderProduct; 3) Extend allowed statuses for feedback creation to include FAILED;
Fixes: 1) Reorder imports in `core/utils` and `core/utils/seo_builders` sections; 2) Correct misplaced `Boolean` import in `object_types.py`;

Extra: 1) Update GraphQL schema descriptions for new and existing fields; 2) Minor reformatting of imports for consistency.
2025-09-18 14:26:56 +03:00
0ca0756e50 Features: 1) Add support for authorization code grant type in the Amo gateway.
Fixes: 1) Improve validation logic to ensure only one default CRM provider within the model.

Extra: 1) Replace CRM object string representation to use `name` instead of `crm_lead_id`; 2) Refactor token caching to improve reliability and readability.
2025-09-07 03:03:29 +03:00
3769482f56 Features: 1) Add _create_contact and _get_customer_name to handle customer-related details; 2) Introduce process_order_changes to streamline order processing.
Fixes: 1) Correct logging format for CRM integration error messages.

Extra: Remove unused fields `pipeline_id` and `stage_map`; refine `_build_lead_payload`; enhance error logging with stack traces.
2025-09-07 02:33:54 +03:00
3cd12423fe Features: 1) Add migration to update verbose_name and verbose_name_plural for CustomerRelationshipManagementProvider.
Fixes: 1) Correct `verbose_name` and `verbose_name_plural` in `CustomerRelationshipManagementProvider` model.

Extra: 1) None.
2025-09-07 01:16:48 +03:00
a4ca20c8be Features: 1) Add CustomerRelationshipManagementProvider model with fields for integration details and attributes; 2) Add OrderCrmLink model to associate orders with CRM providers; 3) Register both models (CustomerRelationshipManagementProvider and OrderCrmLink) in the admin interface;
Fixes: 1) Correct verbose_name usage for `attributes` field in an existing model;

Extra: 1) Adjust admin field grouping and formatting consistency for readability.
2025-09-07 01:06:36 +03:00
d203095c65 Features: 1) Integrated CRM trigger functionality for Order model, allowing CRM updates during state changes; 2) Added handling for multiple or missing OrderCrmLink entries within upsert_order; 3) Introduced fns_api_key handling in CRM configurations.
Fixes: 1) Resolved malformed phone number issue in serializer when `instance` is unavailable; 2) Corrected relation field naming for `OrderCrmLink` (`order_uuid` to `order`); 3) Ensured only one default CRM provider can exist.

Extra: 1) Refactored `is_business` logic with error handling; 2) Improved logging for CRM integration errors; 3) Added `integration_location` and `default` fields to CRM configuration model.
2025-09-07 00:09:29 +03:00
752f96fcdd Features: 1) Introduce AmoOrderGateway to handle interaction with AMO CRM; 2) Add models CustomerRelationshipManagementProvider and OrderCrmLink to support CRM integration; 3) Implement any_crm_integrations utility function to check CRM provider existence;
Fixes: None;

Extra: 1) Add `URLField` import in models.py; 2) Adjust `save` method signature in models.py to improve typing consistency; 3) Raise custom `CRMException` for CRM setup errors;
2025-09-06 03:07:26 +03:00
ac439d7ead Features: 1) Ensure is_business flag is consistently updated for users and orders; 2) Refactor serializers to improve handling of business order data structures; 3) Add support for business-specific attributes in buy operations.
**Fixes**: 1) Correct handling of non-dict `attributes` for users and orders; 2) Resolve serializer field inconsistencies in `BuyUnregisteredOrderSerializer` and others.

Extra: 1) Clean up redundant error handling and unused local variables; 2) Rename and align method arguments for clarity.
2025-09-05 19:04:15 +03:00
ec147984ab Features: 1) Add sku field to Product model with improvements, including unique constraint and default generation; 2) Implement migration to backfill SKUs for existing products.
Fixes: None.

Extra: 1) Adjust `.po` and `.mo` files for version change to `2.9.3`; 2) Update translations with minor formatting improvements; 3) Clean up comments in locale files.
2025-09-01 20:50:48 +03:00
a44b8fb652 Features: 1) Add handling for business user attributes in order logic; 2) Update HTTP response codes for business order creation to 201.
Fixes: 1) Fix typo `business_inn` to `business_identificator`.

Extra: 1) Improve exception handling with specific error cases for invalid `force` values; 2) Minor formatting adjustments in `models.py`.
2025-09-01 13:17:51 +03:00
fe104c7ff5 Features: 1) Added custom manager for Product model 2025-08-25 00:26:06 +03:00
016b9a575a Features: 1) Update product property to reflect the highest price from stock instead of the lowest; 2) Update filter option to use price_order for consistent sorting;
Fixes: 1) Fix incorrect queryset filtering logic in the `feedbacks` endpoint; 2) Replace redundant product lookup in `feedbacks` with `get_object` for improved clarity and performance;

Extra: 1) Rename annotated field `price` to `price_order` in queryset filters for better semantics; 2) Cleanup and streamline `feedbacks` endpoint logic.
2025-08-20 06:45:46 +03:00
ab10a7a0b7 Features: 1) Add SEO meta utilities and builder functions for schemas; 2) Implement SEO-related APIs in viewsets for categories, brands, and products; 3) Add SeoMeta model and serializer to manage SEO metadata.
Fixes: 1) Resolve annotations compatibility with mypy `type: ignore` adjustments; 2) Correct `resolve_price_with_currency` method to ensure proper float returns; 3) Handle scenarios for empty or null queryset in vendor methods.

Extra: 1) Refactor utility functions for better type annotations and robustness; 2) Minor formatting corrections and removal of redundant mypy strict setting; 3) Improve method return types for consistency.
2025-08-18 14:26:09 +03:00
99fef0e1e0 Features: 1) N/A;
Fixes: 1) Remove unused migration file `0037_alter_vendor_b2b_auth_token`; 2) Update `b2b_auth_token` field in `Vendor` model to remove uniqueness constraint;

Extra: 1) Add explicit return type annotation to `Vendor.save` method.
2025-07-28 12:17:44 +03:00
f52227973b Features: 1) Add b2b_auth_token and users fields to Vendor model with associated migration; 2) Introduce unique constraint for b2b_auth_token with migration; 3) Enhance VendorAdmin and Vendor model's save method to manage related users and token fields automatically;
Fixes: 1) Adjust `is_business` property logic for accuracy; 2) Fix import cleanup in serializers and utils files;

Extra: Refactor `core.models`, `core.utils`, and `core.vendors` for improved type annotations and other minor adjustments; Expand mypy exclusions in `pyproject.toml`.
2025-07-28 11:56:32 +03:00
954e02385c Features: 1) Add personal_orders_only field to GraphQL schema for Product; 2) Implement personal_orders_only property in Product model; 3) Include personal_orders_only in simple serializer;
Fixes: None;

Extra: 1) Remove redundant `stocks__isnull=False` filter from views and schema queries; 2) Minor formatting adjustments;
2025-07-26 14:48:21 +03:00
ec1a63afd8 Features: 1) Add tracking of buy_time when order status is set to payment; 2) Add buy_time field to admin general fields;
Fixes: None;

Extra: None;
2025-07-16 17:25:35 +03:00
0a2b4b65a0 Features: 1) Prevent duplicate "order finished" emails with added check on system_email_sent attribute; 2) Automatically update system_email_sent attribute after sending order email;
Fixes: 1) Remove unused `_` import in `drf.py`; 2) Trim redundant newline in `apply_addresses` method;

Extra: 1) Fix minor formatting in `deepl_translate.py` command; 2) Simplify `SPECTACULAR_PLATFORM_DESCRIPTION` string handling; 3) Minor refactoring and cleanup in email utility and related logic.
2025-07-16 14:54:33 +03:00
c149adb0a8 Features: 1) Add detailed translation logic in deepl_translate command with placeholder mapping and DeepL API integration; 2) Enhance deepl_translate with better PO handling and dynamic saving.
Fixes: 1) Correct incorrect type annotations and imports for `readline` in `deepl_translate` command; 2) Remove unused variables `billing_address` and `shipping_address` in address application logic.

Extra: Add `# type: ignore` comments to suppress type-checking errors across admin classes.
2025-07-14 17:12:26 +03:00
e49c942a1b Features: 1) Add detailed in-line comments with type ignore for improved debugging and maintainability; 2) Update I18N strings and translation placeholders across locales; 3) Introduce "address set" as a translatable object;
Fixes: 1) Resolve malformed phone number error message format; 2) Fix minor grammatical issues in message strings; 3) Align POT-Creation-Date metadata in locale files;

Extra: Enhance formatting consistency in documentation and translations; Remove obsolete translation strings.
2025-07-14 16:22:19 +03:00
eb7cc9847a Features: 1) Add default Address.objects.none() placeholders in apply_addresses method; 2) Validate address application only when billing or shipping address exists;
Fixes: 1) Correct logic for optional address validation to avoid runtime errors;

Extra: 1) Change documentation settings format from "Google" to "Plain".
2025-07-14 10:26:17 +03:00
09366213b6 Features: 1) Introduced AddressFilter and AddressType to enable filtering and querying addresses via GraphQL; 2) Added resolve_addresses method with permission check in GraphQL schema; 3) Updated DRF settings to improve API documentation structure.
Fixes: 1) Corrected `apply_addresses` logic to handle address validation more robustly; 2) Fixed incorrect imports and annotations for better type safety; 3) Resolved typos and clarified docstrings for various views and methods.

Extra: Adjusted formatting, added `# type: ignore` for stricter type checks, and removed unused `dist/` directory from `.dockerignore`.
2025-07-12 18:49:25 +03:00
89301d6432 Features: 1) Add support for processing chosen_products in order creation and update mutations; 2) Introduce new field chosen_products to serializers and GraphQL inputs; 3) Enhance order model to allow bulk addition of products with quantity updates;
Fixes: 1) Correct avatar resolution in `resolve_avatar` method for cases where `url` or `name` attributes are missing; 2) Refresh user object from the database after avatar update to avoid stale data;

Extra: 1) Rename `BulkActionOrderProductInput` to `BulkProductInput` for consistency; 2) Minor code refactorings and adjustments for clarity.
2025-07-08 21:02:54 +03:00
171f2cb20f Features: 1) Add update_order_products_statuses method for bulk updating product statuses; 2) Wrap order creation logic in atomic transaction to ensure integrity.
Fixes: 1) Add missing `transaction` import in `core/models.py`.

Extra: 1) Refactor order product status updates to use the new method; 2) Enhance readability and maintainability of order processing logic.
2025-07-08 16:32:01 +03:00
3427c6ad22 Features: 1) Add validation for empty attributes in Order model; 2) Introduce final_amount retrieval for streamlined promocode application.
Fixes: 1) Update `logger.debug` call to improve readability; 2) Correct `promocode` key to `promocode_uuid` in order attributes dictionary to ensure consistent naming.

Extra: 1) Minor cleanup and code comments in `Order` processing logic.
2025-07-08 14:56:38 +03:00
aa643f6773 Features: 1) Initialize order.attributes as an empty dictionary if undefined;
Fixes: 1) Prevent potential errors when accessing `order.attributes` without initialization;

Extra: None;
2025-07-07 19:49:44 +03:00
def55e9221 Features: None;
Fixes: 1) Change `UUID` to `String` for various GraphQL arguments; 2) Correct type annotation for `chosen_products` in `core/models.py`;

Extra: None;
2025-07-07 19:43:06 +03:00