add status functionality
This commit is contained in:
76
backend/Pipfile.lock
generated
76
backend/Pipfile.lock
generated
@@ -205,46 +205,46 @@
|
||||
},
|
||||
"cryptography": {
|
||||
"hashes": [
|
||||
"sha256:057723b79752a142efbc609e90b0dff27b0361ccbee3bd48312d70f5cdf53b78",
|
||||
"sha256:05c2385b1f5c89a17df19900cfb1345115a77168f5ed44bdf6fd3de1ce5cc65b",
|
||||
"sha256:08281de408e7eb71ba3cd5098709a356bfdf65eebd7ee7633c3610f0aa80d79b",
|
||||
"sha256:10d68763892a7b19c22508ab57799c4423c7c8cd61d7eee4c5a6a55a46511949",
|
||||
"sha256:1655d3a76e3dedb683c982a6c3a2cbfae2d08f47a48ec5a3d58db52b3d29ea6f",
|
||||
"sha256:18f8084b7ca3ce1b8d38bdfe33c48116edf9a08b4d056ef4a96dceaa36d8d965",
|
||||
"sha256:2cb03a944a1a412724d15a7c051d50e63a868031f26b6a312f2016965b661942",
|
||||
"sha256:4142e20c29224cec63e9e32eb1e6014fb285fe39b7be66b3564ca978a3a8afe9",
|
||||
"sha256:463096533acd5097f8751115bc600b0b64620c4aafcac10c6d0041e6e68f88fe",
|
||||
"sha256:48caa55c528617fa6db1a9c3bf2e37ccb31b73e098ac2b71408d1f2db551dde4",
|
||||
"sha256:49af56491473231159c98c2c26f1a8f3799a60e5cf0e872d00745b858ddac9d2",
|
||||
"sha256:4cc31c66411e14dd70e2f384a9204a859dc25b05e1f303df0f5326691061b839",
|
||||
"sha256:501de1296b2041dccf2115e3c7d4947430585601b251b140970ce255c5cfb985",
|
||||
"sha256:59c0c8f043dd376bbd9d4f636223836aed50431af4c5a467ed9bf61520294627",
|
||||
"sha256:614bca7c6ed0d8ad1dce683a6289afae1f880675b4090878a0136c3da16bc693",
|
||||
"sha256:61a8b1bbddd9332917485b2453d1de49f142e6334ce1d97b7916d5a85d179c84",
|
||||
"sha256:7429936146063bd1b2cfc54f0e04016b90ee9b1c908a7bed0800049cbace70eb",
|
||||
"sha256:7c73968fbb7698a4c5d6160859db560d3aac160edde89c751edd5a8bc6560c88",
|
||||
"sha256:80303ee6a02ef38c4253160446cbeb5c400c07e01d4ddbd4ff722a89b736d95a",
|
||||
"sha256:965611880c3fa8e504b7458484c0697e00ae6e937279cd6734fdaa2bc954dc49",
|
||||
"sha256:9a900036b42f7324df7c7ad9569eb92ba0b613cf699160dd9c2154b24fd02f8e",
|
||||
"sha256:9cfd1399064b13043082c660ddd97a0358e41c8b0dc7b77c1243e013d305c344",
|
||||
"sha256:a8ec324711596fbf21837d3a5db543937dd84597d364769b46e0102250023f77",
|
||||
"sha256:a9727a21957d3327cf6b7eb5ffc9e4b663909a25fea158e3fcbc49d4cdd7881b",
|
||||
"sha256:b19f4b28dd2ef2e6d600307fee656c00825a2980c4356a7080bd758d633c3a6f",
|
||||
"sha256:b2de529027579e43b6dc1f805f467b102fb7d13c1e54c334f1403ee2b37d0059",
|
||||
"sha256:c0c000c1a09f069632d8a9eb3b610ac029fcc682f1d69b758e625d6ee713f4ed",
|
||||
"sha256:cdafb86eb673c3211accffbffdb3cdffa3aaafacd14819e0898d23696d18e4d3",
|
||||
"sha256:d2a90ce2f0f5b695e4785ac07c19a58244092f3c85d57db6d8eb1a2b26d2aad6",
|
||||
"sha256:d784d57b958ffd07e9e226d17272f9af0c41572557604ca7554214def32c26bf",
|
||||
"sha256:d891942592789fa0ab71b502550bbadb12f540d7413d7d7c4cef4b02af0f5bc6",
|
||||
"sha256:dc7693573f16535428183de8fd27f0ca1ca37a51baa0b41dc5ed7b3d68fe80e2",
|
||||
"sha256:ddb8d01aa900b741d6b7cc585a97aff787175f160ab975e21f880e89d810781a",
|
||||
"sha256:e328357b6bbf79928363dbf13f4635b7aac0306afb7e5ad24d21d0c5761c3253",
|
||||
"sha256:e86c8d54cd19a13e9081898b3c24351683fd39d726ecf8e774aaa9d8d96f5f3a",
|
||||
"sha256:e9e4bdcd70216b08801e267c0b563316b787f957a46e215249921f99288456f9",
|
||||
"sha256:f169469d04a23282de9d0be349499cb6683b6ff1b68901210faacac9b0c24b7d"
|
||||
"sha256:00094838ecc7c6594171e8c8a9166124c1197b074cfca23645cee573910d76bc",
|
||||
"sha256:050ce5209d5072472971e6efbfc8ec5a8f9a841de5a4db0ebd9c2e392cb81972",
|
||||
"sha256:232954730c362638544758a8160c4ee1b832dc011d2c41a306ad8f7cccc5bb0b",
|
||||
"sha256:25286aacb947286620a31f78f2ed1a32cded7be5d8b729ba3fb2c988457639e4",
|
||||
"sha256:2f8f8f0b73b885ddd7f3d8c2b2234a7d3ba49002b0223f58cfde1bedd9563c56",
|
||||
"sha256:38deed72285c7ed699864f964a3f4cf11ab3fb38e8d39cfcd96710cd2b5bb716",
|
||||
"sha256:3ad69eeb92a9de9421e1f6685e85a10fbcfb75c833b42cc9bc2ba9fb00da4710",
|
||||
"sha256:5555365a50efe1f486eed6ac7062c33b97ccef409f5970a0b6f205a7cfab59c8",
|
||||
"sha256:555e5e2d3a53b4fabeca32835878b2818b3f23966a4efb0d566689777c5a12c8",
|
||||
"sha256:57a6500d459e8035e813bd8b51b671977fb149a8c95ed814989da682314d0782",
|
||||
"sha256:5833bb4355cb377ebd880457663a972cd044e7f49585aee39245c0d592904578",
|
||||
"sha256:71320fbefd05454ef2d457c481ba9a5b0e540f3753354fff6f780927c25d19b0",
|
||||
"sha256:7573d9eebaeceeb55285205dbbb8753ac1e962af3d9640791d12b36864065e71",
|
||||
"sha256:92d5f428c1a0439b2040435a1d6bc1b26ebf0af88b093c3628913dd464d13fa1",
|
||||
"sha256:97787952246a77d77934d41b62fb1b6f3581d83f71b44796a4158d93b8f5c490",
|
||||
"sha256:9bb5bf55dcb69f7067d80354d0a348368da907345a2c448b0babc4215ccd3497",
|
||||
"sha256:9cc80ce69032ffa528b5e16d217fa4d8d4bb7d6ba8659c1b4d74a1b0f4235fca",
|
||||
"sha256:9e4253ed8f5948a3589b3caee7ad9a5bf218ffd16869c516535325fece163dcc",
|
||||
"sha256:9eda14f049d7f09c2e8fb411dda17dd6b16a3c76a1de5e249188a32aeb92de19",
|
||||
"sha256:a2b56de3417fd5f48773ad8e91abaa700b678dc7fe1e0c757e1ae340779acf7b",
|
||||
"sha256:af3f92b1dc25621f5fad065288a44ac790c5798e986a34d393ab27d2b27fcff9",
|
||||
"sha256:c5edcb90da1843df85292ef3a313513766a78fbbb83f584a5a58fb001a5a9d57",
|
||||
"sha256:c824c9281cb628015bfc3c59335163d4ca0540d49de4582d6c2637312907e4b1",
|
||||
"sha256:c92519d242703b675ccefd0f0562eb45e74d438e001f8ab52d628e885751fb06",
|
||||
"sha256:ca932e11218bcc9ef812aa497cdf669484870ecbcf2d99b765d6c27a86000942",
|
||||
"sha256:cb6ab89421bc90e0422aca911c69044c2912fc3debb19bb3c1bfe28ee3dff6ab",
|
||||
"sha256:cfd84777b4b6684955ce86156cfb5e08d75e80dc2585e10d69e47f014f0a5342",
|
||||
"sha256:d377dde61c5d67eb4311eace661c3efda46c62113ff56bf05e2d679e02aebb5b",
|
||||
"sha256:d54ae41e6bd70ea23707843021c778f151ca258081586f0cfa31d936ae43d1b2",
|
||||
"sha256:dc10ec1e9f21f33420cc05214989544727e776286c1c16697178978327b95c9c",
|
||||
"sha256:ec21313dd335c51d7877baf2972569f40a4291b76a0ce51391523ae358d05899",
|
||||
"sha256:ec64ee375b5aaa354b2b273c921144a660a511f9df8785e6d1c942967106438e",
|
||||
"sha256:ed43d396f42028c1f47b5fec012e9e12631266e3825e95c00e3cf94d472dac49",
|
||||
"sha256:edd6d51869beb7f0d472e902ef231a9b7689508e83880ea16ca3311a00bf5ce7",
|
||||
"sha256:f22af3c78abfbc7cbcdf2c55d23c3e022e1a462ee2481011d518c7fb9c9f3d65",
|
||||
"sha256:fae1e637f527750811588e4582988932c222f8251f7b7ea93739acb624e1487f",
|
||||
"sha256:fed5aaca1750e46db870874c9c273cd5182a9e9deb16f06f7bdffdb5c2bde4b9"
|
||||
],
|
||||
"markers": "python_version >= '3.7' and python_full_version not in '3.9.0, 3.9.1'",
|
||||
"version": "==45.0.2"
|
||||
"version": "==45.0.3"
|
||||
},
|
||||
"django": {
|
||||
"hashes": [
|
||||
|
||||
@@ -37,7 +37,7 @@ class NewsView(APIView):
|
||||
class LatestRoutesView(APIView):
|
||||
@handle_exceptions
|
||||
def get(self, request):
|
||||
"""Получаем последние маршруты"""
|
||||
"""Получаем последние актуальные маршруты"""
|
||||
|
||||
routes = []
|
||||
owner_types = dict(owner_type_choices).keys()
|
||||
@@ -45,7 +45,10 @@ class LatestRoutesView(APIView):
|
||||
for owner_type in owner_types:
|
||||
routes.extend(
|
||||
HomePageRouteSerializer(
|
||||
Route.objects.filter(owner_type=owner_type).order_by('-id')[:5],
|
||||
Route.objects.filter(
|
||||
owner_type=owner_type,
|
||||
status="actual"
|
||||
).order_by('-id')[:5],
|
||||
many=True
|
||||
).data
|
||||
)
|
||||
|
||||
@@ -18,8 +18,10 @@ class SearchRouteListView(generics.ListAPIView):
|
||||
if not owner_type or owner_type not in valid_types:
|
||||
raise ValidationError("Invalid or missing owner_type. Must be either 'customer' or 'mover'")
|
||||
|
||||
# базовый фильтр по типу владельца
|
||||
queryset = Route.objects.filter(owner_type=owner_type)
|
||||
# базовый фильтр по типу владельца и актуальности
|
||||
queryset = Route.objects.filter(
|
||||
owner_type=owner_type,
|
||||
status="actual")
|
||||
|
||||
# фильтруем по времени в зависимости от типа
|
||||
if owner_type == 'mover':
|
||||
|
||||
@@ -2,9 +2,11 @@ asgiref==3.8.1
|
||||
certifi==2025.4.26
|
||||
cffi==1.17.1
|
||||
charset-normalizer==3.4.2
|
||||
cryptography==45.0.2
|
||||
cryptography==45.0.3
|
||||
Django==5.2.1
|
||||
django-cors-headers==4.7.0
|
||||
django-stubs==5.2.0
|
||||
django-stubs-ext==5.2.0
|
||||
djangorestframework==3.16.0
|
||||
djangorestframework_simplejwt==5.5.0
|
||||
idna==3.10
|
||||
@@ -19,4 +21,6 @@ requests-pkcs12==1.25
|
||||
six==1.17.0
|
||||
sqlparse==0.5.3
|
||||
transliterate==1.10.2
|
||||
types-PyYAML==6.0.12.20250516
|
||||
typing_extensions==4.13.2
|
||||
urllib3==2.4.0
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 5.2.1 on 2025-05-26 07:11
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('routes', '0006_alter_city_id_alter_country_id_alter_leads_id_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='route',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(auto_now_add=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='route',
|
||||
name='status',
|
||||
field=models.CharField(choices=[('actual', 'Актуально'), ('canceled', 'Отменено'), ('completed', 'Завершено')], default='actual', max_length=20),
|
||||
),
|
||||
]
|
||||
@@ -105,6 +105,17 @@ class Route(models.Model):
|
||||
blank=True, null=True
|
||||
)
|
||||
|
||||
status = models.CharField(
|
||||
max_length=20,
|
||||
choices=[
|
||||
("actual", "Актуально"),
|
||||
("canceled", "Отменено"),
|
||||
("completed", "Завершено"),
|
||||
],
|
||||
default="actual",
|
||||
)
|
||||
created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True)
|
||||
|
||||
def __str__(self) -> str:
|
||||
from_city_name = self.from_city.name if self.from_city else 'Не указан'
|
||||
to_city_name = self.to_city.name if self.to_city else 'Не указан'
|
||||
|
||||
12
frontend/package-lock.json
generated
12
frontend/package-lock.json
generated
@@ -5558,9 +5558,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/preact": {
|
||||
"version": "10.26.6",
|
||||
"resolved": "https://registry.npmjs.org/preact/-/preact-10.26.6.tgz",
|
||||
"integrity": "sha512-5SRRBinwpwkaD+OqlBDeITlRgvd8I8QlxHJw9AxSdMNV6O+LodN9nUyYGpSF7sadHjs6RzeFShMexC6DbtWr9g==",
|
||||
"version": "10.26.7",
|
||||
"resolved": "https://registry.npmjs.org/preact/-/preact-10.26.7.tgz",
|
||||
"integrity": "sha512-43xS+QYc1X1IPbw03faSgY6I6OYWcLrJRv3hU0+qMOfh/XCHcP0MX2CVjNARYR2cC/guu975sta4OcjlczxD7g==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
@@ -6496,9 +6496,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/tinyglobby": {
|
||||
"version": "0.2.13",
|
||||
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
|
||||
"integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
|
||||
"version": "0.2.14",
|
||||
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
|
||||
"integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
||||
Reference in New Issue
Block a user