Commit graph

58 commits

Author SHA1 Message Date
8d2ce5b013 Features: None;
Fixes: None;

Extra: 1) Remove unnecessary blank line in `CategoryDetailListSerializer`; 2) Simplify queryset methods in `core/admin.py` by restructuring `.select_related` calls;
2025-10-26 16:40:34 +03:00
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
44e5e74044 Features: 1) Add async logger initialization in core/vendors and log warnings for missing attribute values, groups, and integrity errors; 2) Add traceback logging for attribute-related errors in core/vendors;
Fixes: 1) Add missing `sku` to readonly fields in `core/admin`;

Extra: 1) Remove unnecessary import of `AnonymousUser` from `core/serializers/detail.py`.
2025-10-18 16:19:39 +03:00
f67319ba5a Features: 1) None;
Fixes: 1) Correct conditional check for cached filterable results to handle `None` values; 2) Remove unnecessary permission checks for attribute filtering;

Extra: 1) Update cache expiry time from 86400 seconds to 3600 seconds.
2025-10-18 11:35:55 +03:00
72a96edda1 Features: 3.1.0 2025-10-14 16:46:09 +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
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
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
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
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
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
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
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
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
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
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
f25efd5c41 Features: 1) Add import for defaultdict in detail.py.
Fixes: 1) Update `CONSTANCE_CONFIG_FIELDSETS` to use `OrderedDict`.

Extra: 1) Minor formatting adjustment in `constance.py`.
2025-07-18 09:56:30 +03:00
67c18fc8d2 Features: 1) Optimize retrieval of filterable attributes by grouping attribute values and reducing query overhead;
Fixes: 1) Handle `user` lookup more robustly using `getattr`; 2) Prevent redundant list creation in distinct value processing;

Extra: 1) Use consistent cache key variable; 2) Improve code readability with `defaultdict` for grouping; 3) Minor cleanup and formatting enhancements; 4) Remove unnecessary attribute redefinitions.
2025-07-18 09:06:22 +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
af127045ae Features: None;
Fixes: 1) Update logging configuration to align all logger instances to use "django" instead of "evibes"; 2) Remove unused logging configuration for "django.request";

Extra: 1) Add detailed error logging in GraphQL execution to include exception messages.
2025-07-06 17:22:14 +03:00
29005527bb Features: 1) RUFFVCKED 2025-07-03 15:00:18 +03:00
aa8f15d0ee Features: 1) RUFFVCKED 2025-07-03 02:53:01 +03:00
83cad6c1cc Features: 1) Update all logger instances across the codebase to use "evibes" instead of "django";
Fixes: 1) None;

Extra: 1) Enhance consistency in logging configuration and improve alignment with project-specific naming conventions.
2025-06-30 01:44:20 +03:00
b040da6e5a Fixes: 1) Update logger initialization to use "django" logger across all modules for consistency;
Extra: None;
2025-06-30 01:37:38 +03:00
bc36db57e1 Features: 1) Add type annotations to methods in payments serializers for enhanced type safety;
Fixes: 1) Correct unnecessary use of `Collection` type hint in core and simple serializers; 2) Fix translation of "blacklisted tokens" in Russian localization;

Extra: 1) Simplify conditional logic in `get_children` methods across serializers; 2) Remove unused imports and improve code readability.
2025-06-29 21:30:17 +03:00
fdd92dbf8b Features: 1) Introduced strict parameter for zip function in widgets.py; 2) Added EXTENSIONS_MAX_UNIQUE_QUERY_ATTEMPTS setting;
Fixes: 1) Resolved redundant lines and formatting inconsistencies across multiple files; 2) Corrected Collection typing imports and Optional replacements with union types (e.g., `str | None`);

Extra: Improved formatting and readability by consolidating single-line code sections and simplifying expressions.
2025-06-21 20:38:37 +03:00
a33be30098 Features: 1) Added vendor, product tag, category tag models and metadata; 2) Introduced proper noinspection comments for Mypy warnings; 3) Extended Markdown linting rules.
Fixes: 1) Corrected `ForeignKey` type assertions across models; 2) Resolved typos and formatting inconsistencies in `.env` and README; 3) Fixed explicit boolean checks in user manager methods.

Extra: Updated type hints in multiple models, serializers, and views.
2025-06-18 15:58:49 +03:00
328ccaa615 Features: 1) 2.8.9 update
Fixes: 1) wtf go read diff;

Extra: ???
2025-06-18 15:05:58 +03:00
18f3b9d2e8 Features:
1) Userless orders will be merged on user's registration by their phone number and/or email. Added Viewset action "merge_recently_viewed" so recently viewed products may be stored on server's side.
2) Added comprehensive products' filtering by category(support for including subcategories)
Fixes: I18N
2025-06-10 05:40:07 +03:00
705bb79903 Fixes: AddressManager 2025-06-08 15:54:44 +03:00
d2fb042c99 Fixes: DoFeedbackSerializer 2025-06-08 14:24:20 +03:00
7fe3e7de9a Fixes: DoFeedbackSerializer 2025-06-08 14:21:51 +03:00
4148d9e02c Features: Added feedbacks support for OrderProducts 2025-06-08 14:18:26 +03:00
73f1bca09c Fixes: OrderSimpleSerializer 2025-06-07 19:49:48 +03:00
b28a4fffce Fixes: OrderSimpleSerializer 2025-06-07 19:47:05 +03:00
8360ecdc98 Fixes: OrderSimpleSerializer 2025-06-07 19:41:01 +03:00
6449b25e41 Fixes: OrderSimpleSerializer 2025-06-07 19:33:26 +03:00
e8ff6a7f1f Fixes: fix circular imports in serializers 2025-06-05 17:52:55 +03:00
47a18a005b Fixes: fix circular imports in serializers 2025-06-05 17:52:21 +03:00
af61a7ddff Features: Add fields for addresses and attributes in Order's serializers.
Extra: 1) Minor code improvements.
2025-06-04 17:14:30 +03:00
3bf0eaeba2 Features: Add order's IDs to TransactionProcessSerializer.
Extra: 1) Minor code improvements.
2025-06-03 21:35:41 +03:00
86e2d787b1 Features: 1) Limit distinct values to 128 elements when count exceeds threshold; 2) Replace CategoryDetailSerializer with CategorySimpleSerializer in BrandDetailSerializer;
Fixes: 1) Add conditional caching based on user permissions;

Extra: 1) Remove redundant condition on distinct values count; 2) Minor readability improvements within detail serializer logic;
2025-05-29 22:23:43 +03:00
7e40596cb3 Features: 1) Add address_line_1 and address_line_2 fields to Address serializer; 2) Include detailed traceback information in error responses when DEBUG is enabled.
Fixes: 1) Correct mismanagement of instance and serializer in update method of viewset.

Extra: 1) Minor organizational improvement and clearer formatting in views.
2025-05-29 18:08:44 +03:00
79c97b7e5a Features: 1) Add address_line field to Address model for enhanced customer address representation; 2) Extend serializers with address_line_1 and address_line_2 fields; 3) Update address parsing logic to include house number in street and support address_line storage;
Fixes: None;

Extra: Refactor address manager to construct `address_line` from parsed data;
2025-05-28 22:07:06 +03:00
4e269dc801 Features: 1) Add BulkOrderAction mutation to handle bulk addition/removal of order products; 2) Introduce bulk_add_order_products and bulk_remove_order_products endpoints in viewset; 3) Add BulkAddOrderProductsSerializer and BulkRemoveOrderProductsSerializer.
Fixes: 1) Update `remove_product` model method to handle zero quantity removal; 2) Correct permission check in order product removal.

Extra: 1) Add `autocomplete_fields` for products in admin; 2) Enhance docs with bulk add/remove schemas; 3) Various code refactorings and minor tweaks for improved maintainability.
2025-05-28 14:48:16 +03:00
d86a6ed3c8 RUFF 2025-05-26 16:12:59 +03:00
475b0a0c94 Features: 1) Add support for 'create' action with explicit 'ALLOW' flag in AddressViewSet; 2) Introduce refined permission handling with scoped user actions and public model visibility checks in EvibesPermission.
Fixes: 1) Ensure 'user' is set to authenticated user in AddressSerializer.create method.

Extra: 1) Refactor EvibesPermission for clarity and comprehensive action handling; 2) Add detailed class-level docstring for EvibesPermission; 3) Simplify queryset filtering logic with USER_SCOPED_ACTIONS and explicit permission checks.
2025-05-26 15:06:24 +03:00
71cb0fc2db Features: 1) Add AutoSlugField "slug" to Category model with unique and auto-populating behavior; 2) Include "slug" field in CategoryFilter and relevant serializers (detail and simple); 3) Add "slug" to GraphQL object type for categories;
Fixes: None;

Extra: Add migration for new "slug" field in Category model.
2025-05-21 12:37:30 +03:00