Commit graph

588 commits

Author SHA1 Message Date
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
40c86c7eef Features: 1) Streamlined stock and price annotations by removing redundant Max wrapping;
Fixes: None;

Extra: 1) Simplified code structure for readability; 2) Optimized boolean calculations for annotations;
2025-10-03 17:07:59 +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
a344014d9f Features: 1) Add annotations for has_stock, has_price, and personal_order_only in product query to enhance filtering and sorting; 2) Implement conditional ordering by personal_order_only in product query;
Fixes: 1) Remove redundant `personal_order_only` mapping from filters to fix duplicate processing; 2) Adjust sorting logic to avoid appending unneeded `personal_order_only` in filters;

Extra: 1) Add missing imports for Django model annotations and fields; 2) Refactor product query for clarity and improved handling of availability and price conditions.
2025-10-02 15:08:20 +03:00
fa97a582d3 Features: 1) Add fallback logic for business_identificator lookup in order and user attributes; 2) Implement raise_for_status for FNS API requests to handle HTTP errors effectively;
Fixes: 1) Remove unused Django `settings` import;

Extra: 1) Minor reorganization of variable assignments for clarity.
2025-10-02 14:26:21 +03:00
d1ee8d6f97 Features: 1) Add support for loading redirect_uri from dynamic config using constance.BASE_DOMAIN;
Fixes: 1) Add missing imports for `constance.config` and `django.conf.settings`;

Extra: 1) Minor adjustment to `payload` initialization for consistency.
2025-10-02 13:50:03 +03:00
f2456d1391 Features: 1) Add is_status_code_success utility function to check HTTP status success codes; 2) Implement is_status_code_success in AMO access token retrieval to improve error handling;
Fixes: None;

Extra: 1) Adjust minor formatting in `core/utils/__init__.py`; 2) Add logging for failed AMO access token requests;
2025-10-02 13:37:47 +03:00
eb69fd3328 Fixes: 1) Resolve incorrect URL formatting in AMO CRM gateway by removing redundant "https://" prefix;
Extra: None;
2025-10-02 13:28:35 +03:00
447f70d17a Fixes: 1) Handle generic Exception in current method of viewsets to prevent 500 errors;
Extra: 1) Add fallback error response with status 400 for unexpected exceptions.
2025-10-02 13:19:21 +03:00
4bce9224fc Features: 1) Automatically create a new Order if no pending Order exists for authenticated users;
Fixes: 1) Handle `Order.DoesNotExist` exception in `current` method of viewsets;

Extra: 1) Minor improvement to user experience by ensuring an Order object is always returned.
2025-10-01 18:51:11 +03:00
c6f2029285 Features: 1) Add retrieve method to handle Address retrieval by UUID;
Fixes: None;

Extra: None;
2025-10-01 18:36:00 +03:00
d2cb4c73f0 Features: 1) Allow "retrieve" action in additional permissions for AddressViewSet;
Fixes: none;

Extra: none;
2025-10-01 18:25:31 +03:00
6a42907060 Features: 1) Update rate limit logic to dynamically adjust based on settings.DEBUG instead of hardcoded DEBUG;
Fixes: 1) Remove unused import of `DEBUG` from settings;

Extra: n/a;
2025-10-01 18:19:54 +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
3324e5d36b Features: 1) Replace FeedbackDetailSerializer with FeedbackSimpleSerializer in feedback retrieval endpoint;
Fixes: none;

Extra: 1) Update API documentation to reflect serializer change;
2025-09-30 12:12:28 +03:00
795adea793 Fixes: 1) Rename lookup parameter to lookup_value in product SEO metadata API for clarity. 2025-09-30 11:55:02 +03:00
e18327b920 Features: 1) Add "feedbacks" action with corresponding serializer in ProductViewSet;
Fixes: 1) Replace `lookup` with `lookup_value` in API parameter definitions;

Extra: 1) Remove unused query parameters for product listing documentation.
2025-09-30 11:54:45 +03:00
d44bbdd920 Features: 1) Add support for filtering objects by SKU in get_object method; 2) Introduce handling for new feedbacks and do_feedback in additional and serializers;
Fixes: 1) Adjust import order in `viewsets.py` to match project convention; 2) Correct schema name from `seo` to `seo_meta` in documentation;

Extra: 1) Refactor SEO schemas import order for better readability; 2) Update `additional` field structure with consistent formatting.
2025-09-30 11:37:58 +03:00
f95f640a06 Features: 1) Optimized __init__ method in filters to handle annotation logic for rating and price fields, improving query efficiency.
Fixes: 1) Removed redundant annotation logic for `rating` and `price` fields from `qs` method, ensuring no duplication and enhancing maintainability.

Extra: Reorganized filter logic by consolidating annotation processes into the constructor; eliminated unused code for cleaner and more maintainable structure.
2025-09-29 11:35:42 +03:00
bb5911abe6 Features: 1) Introduced search fields with transliteration support across filters and Elasticsearch queries; 2) Simplified name filters in product, category, and brand filters by replacing custom logic with standard icontains; 3) Added process_system_query function with enhanced query capabilities.
Fixes: 1) Corrected inconsistent `QuerySet` type hints in vendors module; 2) Resolved string concatenation issue in `get_uuid_as_path` by prepending the path with "users/".

Extra: Updated Elasticsearch weighting factors and SMART_FIELDS configuration for better search relevance; removed unused methods and redundant comments in filters and documents; cleaned up migrations and adjusted query building logic.
2025-09-27 15:56:52 +03:00
1f68fa8b73 Features: 1) Add is_filterable field to Attribute model with migration; 2) Extend admin panel to include is_filterable in general_fields; 3) Update serializers to respect is_filterable for attribute querying; 4) Ensure object types enforce is_filterable in attribute filtering;
Fixes: None;

Extra: Improve `AlterUniqueTogether` constraint for attributes with `name` and `group`;
2025-09-22 14:11:15 +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
700b55a9b6 Fixes: 1) Handle case where no feedback exists for an order product in resolve_feedback.
Extra: 1) Adjust logic for `resolve_feedback` to safely return the first feedback or `None`.
2025-09-18 15:06:17 +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
dea219f974 Fixes: 1) Remove redundant permission check for core.change_orderproduct in mutations.py;
Extra: None;
2025-09-18 14:10:06 +03:00
018d8ca8e0 Features: 1) Add rating field to Product object with description and GraphQL schema; 2) Implement resolve_rating to fetch the rating value for Product;
Fixes: None;

Extra: 1) Update field lists in `Product` meta to include `rating`.
2025-09-17 18:58:07 +03:00
fe6316dae1 Features: 1) Add has_stock and has_price annotations for stock and price availability checks.
Fixes: 1) Correct conditional logic in `personal_order_only` annotation to use integers for comparison.

Extra: 1) Minor readability improvements in annotation definitions.
2025-09-16 15:46:25 +03:00
91b043ac4f Features: 1) Add personal_order_only ordering option; 2) Annotate queryset with personal_order_only calculated field; 3) Support custom ordering for price and personal_order_only.
Fixes: 1) Correct `rating` ordering logic to use cleaned field names without signs.

Extra: 1) Add missing import for `BooleanField`; 2) Refactor ordering parameter processing for clarity and efficiency.
2025-09-16 15:04:59 +03:00
143cd6804b Features: 1) Add dynamic tree prefetching for ordered and random scenarios; 2) Introduce create_ordered_tree_prefetch with depth-limiting capability;
Fixes: 1) Simplify ordering logic by consolidating expressions for both parent and child nodes;

Extra: 1) Refactor query construction for improved readability; 2) Remove redundant variable `parent_order` and `child_order`.
2025-09-15 13:54:05 +03:00
7d2c85b03b Fixes: 1) Correctly append human_readable_id to meta_fields instead of mistakenly adding sku;
Extra: No changes outside this fix.
2025-09-15 13:43:05 +03:00
874fa8a40d Features: 1) Update localized strings for da_DK translations in vibes_auth; 2) Update localized strings for zh_Hans translations in core;
Fixes: 1) Correct `attributes` definition in `da_DK` translations; 2) Add missing localization details in `zh_Hans`;

Extra: Update project version metadata from 2.9.3 to 3.0.0.
2025-09-15 12:54:46 +03:00
ee6b011da8 Features: 1) 3.0.0 released
Extra: Check out storefront-nuxt branch!
2025-09-13 15:28:59 +03:00
2f98354f35 Features: 1) Add slug field to BrandFilter with filtering and ordering support; 2) Implement send_promocode_created_email task using a new email template; 3) Create signal to notify users upon promocode creation.
Fixes: None;

Extra: Refactor imports in `signals.py` and `emailing.py`; Add formatting and responsive styles for email template.
2025-09-09 16:27:04 +03:00
2f4cceaa6a Features: 1) Add hreflang to metadata response across viewsets; 2) Update GraphQL schema to use hreflang as a string instead of a list.
Fixes: 1) Correct `hreflang` field type in serializers and GraphQL object types.

Extra: Refactor redundant `hreflang` handling; ensure uniform `LANGUAGE_CODE` usage throughout.
2025-09-09 15:30:05 +03:00
6539a63f4f Features: 1) Add slug field to Brand GraphQL object type;
Fixes: 1) None;

Extra: 1) None;
2025-09-09 14:21:04 +03:00
81b2da33d2 Features: 1) Prevent CRM trigger for instances with "PENDING" status;
Fixes: 1) Adjust `.dockerignore` and `.gitignore` to replace `db_backups/` with `backups/`;

Extra: None;
2025-09-08 21:36:58 +03:00
4d9e276f2b Features: 1) Add handling for multiple AMO CRM providers in gateway initialization; 2) Suppress CRMException in CRM-related signal processing;
Fixes: 1) Correct provider name from "amo" to "AmoCRM";

Extra: 1) Remove unused `time` import and redundant token caching logic; 2) Add missing CRMException import to signals; 3) Minor code cleanup and readability improvements;
2025-09-08 04:56:09 +03:00
2c67af969e Features: 1) Add STATUS_MAP dictionary to map status codes in AmoCRM; 2) Update update_order_status method to use STATUS_MAP for status mapping.
Fixes: 1) Simplify retrieval of `OrderCrmLink` to use `get()` instead of `filter().first()`; 2) Eliminate redundant `Order` lookup by utilizing `link.order`.

Extra: Refactored code to enhance readability and efficiency in status update logic.
2025-09-07 03:06:06 +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
23e4611c5e Features: 1) Add readonly_fields for uuid, modified, and created in CustomerRelationshipManagementProvider; 2) Add additional readonly_fields for OrderCrmLink;
Fixes: 1) Fix email validation to properly handle `self.instance` checks in serializers;

Extra: 1) Remove unnecessary blank lines and reformat code for better readability; 2) Consolidate migration field definitions to a single line for cleaner diff;
2025-09-07 01:30:03 +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
9f9d58e471 Merge branch 'feature/crms-integration' 2025-09-07 00:11:06 +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
99288ebbc8 Features: 1) Add conditional ordering for children_qs to handle random child order; 2) Enable prefetch optimization by adding prefetch_related(None).
Fixes: None;

Extra: Minor refactor in `children_qs` assignment for clarity.
2025-09-06 03:09:38 +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
880f3f19b1 Features: 1) Add sku and partnumber fields with search analyzers for Elasticsearch schema; 2) Implement code-like query boosting for sku and partnumber fields; 3) Separate search logic into modular build_search function;
Fixes: 1) Correct improper replacing logic for `name.ngram` and `title.ngram` in specific language cases; 2) Apply customization to handle `AUTO:5,8` fuzzy logic more cleanly;

Extra: Refactor search responses to handle brands, categories, and products separately with improved modularity.
2025-09-05 19:42:51 +03:00
d811d1e5fe Features: 1) Add Prefetch import in filters.py; 2) Introduce filter_order_by method with custom ordering logic for Category model.
Fixes: 1) Replace `OrderingFilter` with `CharFilter` for `order_by` field in `CategoryFilter`.

Extra: 1) Remove unused ordering configuration from `order_by` field; 2) Refactor ordering logic with prefetch-related optimization for children categories.
2025-09-05 19:20:48 +03:00
eecb4c9ec4 Features: 1) Enhance rate-limiting decorators with method_decorator for better compatibility.
Fixes: 1) Ensure consistent application of `ratelimit` across methods.

Extra: 1) Minor readability improvement in views using `method_decorator`.
2025-09-05 19:13:33 +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
efb9aaeeef Features: 1) Update SKU backfill migration to process in batches of 10,000; 2) Add bulk update for improved performance; 3) Refactor SKU generation logic to remove reliance on Product model;
Fixes: 1) Prevent repeated queries by reusing the last processed primary key; 2) Avoid redundant SKU existence checks through optimized logic;

Extra: 1) Set migration atomicity to False for better batch handling; 2) Minor code cleanup and restructuring;
2025-09-02 09:52:21 +03:00
4e2c4c7ccb Features: 1) Add sku field to multiple serializers and GraphQL object types for better product identification;
Fixes: 1) Remove unnecessary `IntegrityError` import in 0038_backfill_product_sku migration;

Extra: 1) Minor formatting cleanup in migration files.
2025-09-01 20:52:42 +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
f345a1bfed Features: None;
Fixes: 1) Correct inconsistent formatting in `vibes_auth` phone number validation logic; 2) Resolve redundant newlines in `core/utils/emailing.py` logging statement;

Extra: 1) Cleaned up line breaks for better readability and consistency.
2025-09-01 13:18:13 +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
ee9e8c3275 Features: Add debug logging for send_order_finished_email SMTP results. 2025-08-26 11:33:48 +03:00
54d8889ffa Fixes: 1) Corrected products' filtering options on interfaces 2025-08-25 00:41:02 +03:00
9e1430b05c Fixes: 1) Return filtering options to ProductViewSet 2025-08-25 00:38:05 +03:00
bf4c21d431 Fixes: 1) Fixed elasticsearch's track_scores 2025-08-25 00:27:24 +03:00
fe104c7ff5 Features: 1) Added custom manager for Product model 2025-08-25 00:26:06 +03:00
d948d51f91 Fixes: 1) Reworked search weights so text matches appear first. 2025-08-25 00:11:47 +03:00
b3a0fbef56 Features: 1) Add digital asset file validation before updating order product status; 2) Refactor queryset logic in document class to improve readability;
Fixes: 1) Remove unused serializer import in signals; 2) Fix potential issue with empty digital assets causing errors;

Extra: 1) Clean up logging statements in order processing; 2) Minor formatting and indentation improvements for clarity;
2025-08-22 00:03:48 +03:00
b282706bd2 Features: 1) Add get_queryset method to filter active brands, categories, and vendors;
Fixes: None;

Extra: None;
2025-08-21 05:11:50 +03:00
a2a49c0e83 Features: 1) Adjust boost values for SMART_FIELDS to fine-tune search relevance.
Fixes: 1) Reduce `field_value_factor` weights for improved scoring balance.

Extra: None.
2025-08-20 12:25:44 +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
a2f9ae8693 Features: 1) Rename _BaseDoc to BaseDocument for clarity and consistency; 2) Expose _add_multilang_fields as add_multilang_fields for broader use;
Fixes: 1) Correct `name_ngram` search analyzer in `PostDocument` to `icu_query`;

Extra: 1) Update import paths and references following renaming of `BaseDocument` and `add_multilang_fields`.
2025-08-20 06:22:34 +03:00
167dafefb1 Features: 1) Implement language-specific adjustments for CJK and RTL/Indic languages in Elasticsearch queries; 2) Enhance query fuzziness settings based on language; 3) Refine SMART_FIELDS logic for phonetic and ngram weighting;
Fixes: 1) Correct logic to handle empty or missing language codes in requests;

Extra: Clean up comments and redundant whitespace in analyzers and filters definitions;
2025-08-20 06:09:16 +03:00
0a375ad0d1 Features: 1) Add brand_name and category_name fields to ProductDocument for enhanced search indexing; 2) Introduce expanded ICU-based analyzers for multi-language support, including Arabic, Indic, and CJK; 3) Enable search enhancements with revised weights in SMART_FIELDS and additional language-specific query mappings.
Fixes: 1) Correct typo in total_orders field name in ProductDocument; 2) Replace outdated query_lc analyzer with icu_query for consistent Unicode handling; 3) Remove unnecessary get_object_or_404 calls to optimize batch query performance.

Extra: Refactor process_query function with clearer structure and batch-loading logic; streamline brand and category field handling across documents; improve reboot scripts to rebuild search index automatically.
2025-08-20 05:36:55 +03:00
6e83562ee6 Features: 1) Add include_personal_ordered filter to handle personal orders; 2) Modify ordering filters to support annotation of price using Coalesce and Max;
Fixes: 1) Ensure email and phone number validation rejects duplicates in the user table;

Extra: 1) Minor adjustments to annotated queryset for order filter logic.
2025-08-20 05:00:55 +03:00
421e4a083f Features: 1) Add lookup_field and lookup_url_kwarg to Category and Brand viewsets;
Fixes:

Extra: 1) No changes to existing logic;
2025-08-18 15:43:30 +03:00
5c18404b53 Features: 1) Introduced get_object method for reusable object retrieval logic in Category and Brand viewsets; 2) Enhanced SEO meta retrieval using the new get_object method.
Fixes: 1) Removed reliance on suppressed exceptions for UUID lookup; 2) Improved handling of invalid or missing objects during lookup.

Extra: 1) Cleaned up unused import `suppress`; 2) Simplified code by replacing redundant lookup logic with a unified method.
2025-08-18 15:34:28 +03:00
ea22ca69a3 Features: 1) Introduce ALLOW validation for generic actions in permissions; 2) Add AllowAny permission class to seo_meta endpoints; 3) Update SEO URL patterns and breadcrumbs with language codes; 4) Improve compatibility of attributes in serializers with ListField and DictField.;
Fixes: 1) Correct dynamic URL generation for images in Open Graph (`og_image` and `logo_url`); 2) Address potential missing or empty `crumbs` handling in breadcrumbs generation;

Extra: 1) Refactor redundant action names (e.g., `seo` to `seo_meta`) for better consistency; 2) Clean up and optimize serializer structures and Graphene object fields; 3) Improve readability and maintainability of action and object implementations.;
2025-08-18 15:20:47 +03:00
733b249643 Features: 1) Add seo endpoint to category schema for SEO metadata snapshots; 2) Add seo endpoint to product schema for SEO metadata snapshots; 3) Add description attribute to various endpoint schemas for enhanced documentation;
Fixes: 1) Remove redundant `seo` action mapping in `EvibesPermission`;

Extra: 1) Add missing import for `SeoSnapshotSerializer`; 2) Minor schema formatting improvements;
2025-08-18 15:02:57 +03:00
d767e17f29 Features: 1) Add "seo" action with "view" permission mapping in EvibesPermission; 2) Extend action serializer classes with additional "seo" allowance in multiple viewsets.
Fixes: 1) None.

Extra: 1) Minor adjustments in viewsets for consistency in handling "seo" action.
2025-08-18 14:57:25 +03:00
5556cd008d Fixes: 1) Remove unnecessary blank line in get_or_create_attribute_safe. 2025-08-18 14:46:18 +03:00
1308aa47db Features: 1) Add get_or_create_attribute_safe method for safely creating or retrieving attributes within a transaction;
Fixes: 1) Extend imports with `transaction` to support atomic operations;

Extra: 1) Minor inline comment adjustments for clarity.
2025-08-18 14:43:54 +03:00
91ebaece07 Features: 1) Add SEOMetaType to support structured SEO metadata for brands, products, and categories; 2) Introduce resolve_seo_meta for dynamic SEO data generation on key models; 3) Add helper functions graphene_current_lang and graphene_abs for language-based URLs and absolute URI handling.
Fixes: None;

Extra: 1) Refactor utility docstrings for clarity and detail; 2) Modernize utility function logic and improve inline comments; 3) Adjust logging initialization in `object_types.py`.
2025-08-18 14:36:48 +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
81247bde52 Features: 1) Deduct buy_price from user's payment balance upon order product creation.
Fixes: None;

Extra: None;
2025-08-13 20:50:07 +03:00
83ce862a83 Features:;
Fixes:;

Extra: 1) Simplify `FileResponse` usage and reduce redundant code in file download logic;.
2025-08-13 20:43:28 +03:00
9b47f6dd7b Fixes: 1) Correct file path lookup for digital assets in download logic;
Extra: Adjusted logic to ensure compatibility with `digital_asset.path`.
2025-08-13 20:35:02 +03:00
10351e4576 Fixes: 1) Correct parameter name from encoded_uuid to order_product_uuid in download_digital_asset_view; 2) Update logging to reflect new parameter name;
Extra: None;
2025-08-13 20:22:19 +03:00
1cc75787ab Features: 1) Add logging configuration with a logger setup; 2) Log debug information in download_digital_asset_view function;
Fixes: 1) Add missing `logging` import;

Extra: 1) Remove redundant alias for `uuid` module.
2025-08-13 20:17:39 +03:00
cbd72f10b8 Features: 1) Add detailed traceback in error response for DEBUG mode; 2) Include received encoded_uuid in server error responses for better debugging;
Fixes: 1) Update error responses to use camelized keys consistently;

Extra: 1) Add missing traceback import; 2) Improve error handling for digital asset downloads;
2025-08-13 20:09:48 +03:00
e7bfa87e74 Fixes: 1) Correct UUID decoding to resolve invalid usage of urlsafe_base64_decode.
Extra: Removed unnecessary variable assignments for cleaner code.
2025-08-13 19:56:08 +03:00
5d8f528dfd Features: 1) Use uuid.UUID for decoding encoded UUIDs to ensure proper handling of byte data;
Fixes: 1) Remove deprecated `force_str` usage for decoding encoded UUIDs;

Extra: 1) Add missing `uuid` module import; 2) Minor code cleanup in `core/views.py`.
2025-08-13 19:45:41 +03:00
5d9cd47e72 Features: 1) Add automatic handling of digital products with DigitalAssetDownload creation for eligible orders;
Fixes: 1) Add missing import for `DigitalAssetDownload`;

Extra: 1) Enhance order processing logic to finalize digital product orders with associated stocks.
2025-08-13 19:31:06 +03:00
59870b3bc5 Features: 1) Add logging for transaction processing errors in payments/signals.py; 2) Add return type annotations for core tasks in core/tasks.py;
Fixes: 1) Avoid unused variable warning in `update_products_task` by removing exception variable `vie`; 2) Add missing imports for `logging` and `traceback` in `payments/signals.py`;

Extra: 1) Minor formatting fix in `dbbackup.py` to consolidate FTP URL string construction; 2) Remove unnecessary newline in `core/vendors/__init__.py`.
2025-08-11 14:05:48 +03:00
8c2fbc1e44 Fixes: 1) Update log message for VendorInactiveError to use info level and clarify reason. 2025-08-07 12:32:17 +03:00
75709a3aa1 Features: 1) Introduce VendorInactiveError for explicitly handling inactive vendors in core/vendors; 2) Update stock update process to skip inactive vendors and log warnings.
Fixes: 1) Add missing import for `VendorInactiveError` in `core/tasks.py`.

Extra: 1) Refactor exception handling for vendor stock updates for better readability.
2025-08-07 12:31:54 +03:00
dbc135aea0 Features: 1) Added get_vendor_instance usage to replace direct vendor class handling.
Fixes: (None).

Extra: 1) Minor refactor to enhance vendor instance management logic.
2025-08-05 22:54:41 +03:00
877f71f614 Features: 1) Add support for multiple database backup types (SFTP, FTP) with dynamic configuration;
Fixes: 1) Correct formatting issue in `0036_vendor_b2b_auth_token_vendor_users` migration file;

Extra: 1) Update environment file generation scripts to accommodate new DBBACKUP_TYPE configuration; 2) Add import for `ImproperlyConfigured` in `dbbackup.py`.
2025-08-05 20:40:27 +03:00
f39737d624 Features: 1) Add check for is_active status before updating vendor stock;
Fixes: 1) Prevent potential errors by skipping inactive vendors;

Extra: None;
2025-08-05 10:36:43 +03:00
640cfae961 Features: 1) Add feedbacks_count, personal_orders_only, quantity, and attribute_groups to graphene object types; 2) Extend serializer to include personal_orders_only;
Fixes: None;

Extra: None;
2025-07-29 22:38:05 +03:00