From 3e532240920d8b8fe7c730a2fa4d935de38471db Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Tue, 6 May 2025 17:29:02 +0300 Subject: [PATCH] Add support for human_readable_id in filters and models Added a `human_readable_id` filter to the `OrderFilter` class and enabled ordering by this field. Updated the `create_customer_payload` method to include the `is_business` attribute, ensuring compatibility with new functionality. --- core/filters.py | 6 +++++- core/locale/ru_RU/LC_MESSAGES/django.mo | Bin 46818 -> 46816 bytes core/locale/ru_RU/LC_MESSAGES/django.po | 2 +- core/models.py | 1 + core/views.py | 1 + 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/filters.py b/core/filters.py index f36915cb..20dfc386 100644 --- a/core/filters.py +++ b/core/filters.py @@ -212,10 +212,14 @@ class OrderFilter(FilterSet): user_email = CharFilter(field_name="user__email", lookup_expr="iexact") user = UUIDFilter(field_name="user__uuid", lookup_expr="exact") status = CharFilter(field_name="status", lookup_expr="icontains", label="Status") + human_readable_id = CharFilter(field_name="human_readable_id", lookup_expr="exact") order_by = OrderingFilter( fields=( ("uuid", "uuid"), + ("human_readable_id", "human_readable_id"), + ("user_email", "user_email"), + ("user", "user"), ("status", "status"), ("created", "created"), ("modified", "modified"), @@ -226,7 +230,7 @@ class OrderFilter(FilterSet): class Meta: model = Order - fields = ["uuid", "user_email", "user", "status", "order_by"] + fields = ["uuid", "human_readable_id", "user_email", "user", "status", "order_by"] class WishlistFilter(FilterSet): diff --git a/core/locale/ru_RU/LC_MESSAGES/django.mo b/core/locale/ru_RU/LC_MESSAGES/django.mo index 9474c3abd3e398944d8a7930998fcd056f29d6d8..0fb4855f7fe6c108ad1f06daf09f3222d7b8639c 100644 GIT binary patch delta 2765 zcmXZee^k#`7{KvI;)3Y6*&oifV`sDXk(;-O|Ug~ z_J~)y(@3Br3^TDSZb$vW1?OG#BYuoJ!N1r6!={VG;vm#Lj7U;86vZ>H!i?J48vwKMcQFE)QQJBvt9p5=M8MZ^Lh+KpIIW~ zF$lHdvydUh>!qP3d4O8Vr_QJ}%0oN>N8t+8m0U)BvC75$$WjwY!hBqgL$Kl7B5|0A z@tA`__%&(*w^8TyKBCcuhW|U11$*FROu*&12YWOS37%sKB&A!alQDyRq5fgF6JQ14m4X(r3`8MAvjA4HHk%sPBvv-*YV=x+LU;u8#{#cCX@gC|#`xl7p z!{G}>TH-ILXW$=PiqRQ%m=B^pzlOp3JJJ31X540xRip?< z5^oQ4_d>dUzjVA8fRO`fEl5Xl%wz48?{k zEs+R}Bz^@O;{@!8DHwsPTwH>B$Sz__^j&4wv@JFz9*9$LG?wCFq_{F>HTCzR|)OpkrUqMZ{8g&7GVH9>)YY8Ty zj+cvC*;23TxPrREIt)fXPM!|X9-HHE?1+<5@B2#h;4$og0eM!rXpANvi2B}qXAZtZ zyv@buP`Ao^i-u18o3jzi^d}C(H0+A~u>gnR4cvjj`L?2?s1>QjLX6#Dx8(-vmPEa0 z6;8!Y#95etg-9j1|1@-O8f>&rZZ=Xi`4!`E?xtrS3Mq3|VNd!Szi<8ho$1cK7|-*o zsN?#7U>~XtxShBOCw&AK;~c&JztiYJ$HWiq5N^O3#5Fh@hi5~3a?@amXJjkJd1iLYcT>JyEx<{o39Ic^|XIaBM_@F5g(!s5VOw)OvVi2 z47`uEs4Muk(E8`?7gC< zX*$|q>OuSTuEGh#H8>r6vfPQd1NBtbVQY-!<+&J--S7zNd-rfWcKgH7}82oQmCXF-GDcjKS-u6a9xXvDHz#PAie~C|htGh99#MFTzd4*RU<7d}<$@ zC8(9%g_>v;>T|E(ar=-&;AuM6;S!8LVS7}8dia7)+V>zG^;+G+fCjAcGm&g!PdPUQ ze?pBreQw|UgQ)NOR`72Mr{F*=z+U=I`+-J3I-Waa|NVxdX1Wk#@p$>})&;{_W>;2J bp1rv_wDMf#SCwaOuE8^vr^|;qT+=R z2t`vtqU^GoWvQj}eU~vNGmS>fN_73I0y&N7Ky>}sO_vktv_MCj9$c@=#P(3 z2jrD2l8Uo(9j1X3wxSjF#h^JN^Kc{C+%rnT7CH(6ci%ku~5jZe$`-Ga5zTeT=c^In20ra5$~XObi7dH z7^W>1>4(3f?ty=C4aO`po4FqK`3>~b_iTMP=F`7~EH|5CC+Z8gFbW@{j(ETdlaXqC znYbHcF?FSx$vR9XuE8?wKpptnRVJe)sBt;QV=Z!k_f@N zzIYXrunl$12COxEVkBk~Z$*9HV)bX;G|sYCpbp>`>gK(NFJQ0r2ACi9y(N zgBeH|h7u1$cbtkLn2kfwVdGlVO?Dakq5DR2Ob4PTaWZD(6s*P5NOC2ki2UbJxKt$a zI);)C-Ao%W9QWWrY(|~=4>o>)fy8|_nbQ)EBZ)InJKSaCgQ!dCM7oe}48!&8T%B0; zW*YLPaD@s@$!*jI{EE$S3Bh3E5x4`hQ1`%HJcv8R~(MIAt$!&Y2FonaUHp$9up8wf%lOv4a-6ZO0oVGf?dLFm2RWG)7yiIY*kE3|IG zp~MGld=Yi295*Rw$G=;9F-;HR!I+QHn26;#0bO_i{Y%V@&Z1_d6Du)xr#USy)Fp}9 zWip(HVZ>`O39FDyaQ-Ri+B{KeuH0fIYw{Z=;NsnnFA6znZN=xQ@4d&=kFge5kKtIJ zUq@}%^KElcm0~$@A9i{g*5Cp?|9?=3qhi`SW)qg;9O8DIhZFai`m@%a@0vIpD|p_7 z1vr_*e*`~6<|Nbh8{1Kz7tnh%w&6+KM;gDRe;LJ2s=|M)M-G`6M$@{kVFymbztA5u z4x1UwM_sx`Y{Baoh_#F&0>41rl$|&PAKAG7QPba0bm(sXo`N^FVk+K4ZD9B@)8KSm zM!W)l!cNo~d|PSim%Jykl(-!y;cHdqMm>(xiT}hboP1nlA=cpx^r6{rn&p)N^cEk8_HgC3alzB#Vx7*9M4Q?MK#PYiWJ_i#1()S11rtB(BF zQ}HPk&tl#QbM-p#RpNG>jU$-uR6K;btGh4&!})j-CgE^AgZkYa%*41;W+2;8Gk67c zK#8Z#QciME&^6A(SX_;vcnXK16SX7xfOjAeeX$7lVHsv%=oypZRk)k@2KLA7v*yBC zgPPgHr~_?9eeUo$XD*U3yg>1;y5hFc)inpq%ew#r#>?O`%Oe0>2i$0#-@sZvIzmD&I`^a b*CuC!tJt+W$a$V(v-5M;-lmk9m0AA-nkmqN diff --git a/core/locale/ru_RU/LC_MESSAGES/django.po b/core/locale/ru_RU/LC_MESSAGES/django.po index a5ab7353..8f159e0a 100644 --- a/core/locale/ru_RU/LC_MESSAGES/django.po +++ b/core/locale/ru_RU/LC_MESSAGES/django.po @@ -1140,7 +1140,7 @@ msgstr "Временная метка, когда заказ был заверш #: core/models.py:491 msgid "buy time" -msgstr "Выиграть время" +msgstr "Время покупки" #: core/models.py:498 msgid "a human-readable identifier for the order" diff --git a/core/models.py b/core/models.py index 8dcab745..65f54ad2 100644 --- a/core/models.py +++ b/core/models.py @@ -741,6 +741,7 @@ class Order(NiceModel): "customer_name": customer_name, "customer_email": customer_email, "customer_phone_number": customer_phone_number, + "is_business": kwargs.get("is_business", False), } ) self.save() diff --git a/core/views.py b/core/views.py index bdd62a1c..4386585f 100644 --- a/core/views.py +++ b/core/views.py @@ -217,6 +217,7 @@ class BuyAsBusinessView(APIView): customer_billing_address=serializer.validated_data.get("customer_billing_address"), customer_shipping_address=serializer.validated_data.get("customer_shipping_address"), payment_method=serializer.validated_data.get("payment_method"), + is_business=True, ) return Response(status=status.HTTP_202_ACCEPTED, data=TransactionProcessSerializer(transaction).data)