Skip to content
This repository was archived by the owner on Nov 11, 2022. It is now read-only.

Commit 4103b69

Browse files
Tested - current functionality works
1 parent 1c9ad20 commit 4103b69

File tree

7 files changed

+344
-11
lines changed

7 files changed

+344
-11
lines changed

core/urls.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77

88
urlpatterns = [
9-
path('admin/', admin.site.urls),
10-
path('imports/', ImportsAPIView.as_view()),
11-
path('delete/<str:to_delete>/', DeleteAPIView.as_view()),
12-
path('nodes/<str:to_get>/', NodesAPIView.as_view())
9+
path('admin', admin.site.urls),
10+
path('imports', ImportsAPIView.as_view()),
11+
path('delete/<str:to_delete>', DeleteAPIView.as_view()),
12+
path('nodes/<str:to_get>', NodesAPIView.as_view())
1313
]

expected.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"children": [{"children": [{"children": null, "date": "2022-02-03T15:00:00.000Z", "id": "73bc3b36-02d1-4245-ab35-3106c9ee1c65", "name": "Goldstar 65\" LED UHD LOL Very Smart", "parentId": "1cc0129a-2bfe-474c-9ee6-d435bf5fc8f2", "price": 69999, "type": "OFFER"}, {"children": null, "date": "2022-02-03T12:00:00.000Z", "id": "74b81fda-9cdc-4b63-8927-c978afed5cf4", "name": "Phyllis 50\" LED UHD Smarter", "parentId": "1cc0129a-2bfe-474c-9ee6-d435bf5fc8f2", "price": 49999, "type": "OFFER"}, {"children": null, "date": "2022-02-03T12:00:00.000Z", "id": "98883e8f-0507-482f-bce2-2fb306cf6483", "name": "Samson 70\" LED UHD Smart", "parentId": "1cc0129a-2bfe-474c-9ee6-d435bf5fc8f2", "price": 32999, "type": "OFFER"}], "date": "2022-02-03T15:00:00.000Z", "id": "1cc0129a-2bfe-474c-9ee6-d435bf5fc8f2", "name": "\u0422\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440\u044b", "parentId": "069cb8d7-bbdd-47d3-ad8f-82ef4c269df1", "price": 50999, "type": "CATEGORY"}, {"children": [{"children": null, "date": "2022-02-02T12:00:00.000Z", "id": "863e1a7a-1304-42ae-943b-179184c077e3", "name": "jPhone 13", "parentId": "d515e43f-f3f6-4471-bb77-6b455017a2d2", "price": 79999, "type": "OFFER"}, {"children": null, "date": "2022-02-02T12:00:00.000Z", "id": "b1d8fd7d-2ae3-47d5-b2f9-0f094af800d4", "name": "Xomi\u0430 Readme 10", "parentId": "d515e43f-f3f6-4471-bb77-6b455017a2d2", "price": 59999, "type": "OFFER"}], "date": "2022-02-02T12:00:00.000Z", "id": "d515e43f-f3f6-4471-bb77-6b455017a2d2", "name": "\u0421\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b", "parentId": "069cb8d7-bbdd-47d3-ad8f-82ef4c269df1", "price": 69999, "type": "CATEGORY"}], "date": "2022-02-03T15:00:00.000Z", "id": "069cb8d7-bbdd-47d3-ad8f-82ef4c269df1", "name": "\u0422\u043e\u0432\u0430\u0440\u044b", "parentId": null, "price": 58599, "type": "CATEGORY"}

response.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"children": [{"children": [{"children": null, "date": "2022-02-03T15:00:00.000Z", "id": "73bc3b36-02d1-4245-ab35-3106c9ee1c65", "name": "Goldstar 65\" LED UHD LOL Very Smart", "parentId": "1cc0129a-2bfe-474c-9ee6-d435bf5fc8f2", "price": 69999, "type": "OFFER"}, {"children": null, "date": "2022-02-03T12:00:00.000Z", "id": "74b81fda-9cdc-4b63-8927-c978afed5cf4", "name": "Phyllis 50\" LED UHD Smarter", "parentId": "1cc0129a-2bfe-474c-9ee6-d435bf5fc8f2", "price": 49999, "type": "OFFER"}, {"children": null, "date": "2022-02-03T12:00:00.000Z", "id": "98883e8f-0507-482f-bce2-2fb306cf6483", "name": "Samson 70\" LED UHD Smart", "parentId": "1cc0129a-2bfe-474c-9ee6-d435bf5fc8f2", "price": 32999, "type": "OFFER"}], "date": "2022-02-03T12:00:00.000Z", "id": "1cc0129a-2bfe-474c-9ee6-d435bf5fc8f2", "name": "\u0422\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440\u044b", "parentId": "069cb8d7-bbdd-47d3-ad8f-82ef4c269df1", "price": 50999, "type": "CATEGORY"}, {"children": [{"children": null, "date": "2022-02-02T12:00:00.000Z", "id": "863e1a7a-1304-42ae-943b-179184c077e3", "name": "jPhone 13", "parentId": "d515e43f-f3f6-4471-bb77-6b455017a2d2", "price": 79999, "type": "OFFER"}, {"children": null, "date": "2022-02-02T12:00:00.000Z", "id": "b1d8fd7d-2ae3-47d5-b2f9-0f094af800d4", "name": "Xomi\u0430 Readme 10", "parentId": "d515e43f-f3f6-4471-bb77-6b455017a2d2", "price": 59999, "type": "OFFER"}], "date": "2022-02-02T12:00:00.000Z", "id": "d515e43f-f3f6-4471-bb77-6b455017a2d2", "name": "\u0421\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b", "parentId": "069cb8d7-bbdd-47d3-ad8f-82ef4c269df1", "price": 69999, "type": "CATEGORY"}], "date": "2022-02-01T12:00:00.000Z", "id": "069cb8d7-bbdd-47d3-ad8f-82ef4c269df1", "name": "\u0422\u043e\u0432\u0430\u0440\u044b", "parentId": null, "price": 58599, "type": "CATEGORY"}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 4.0.5 on 2022-06-21 11:45
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('shop', '0006_alter_shopunit_price'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='shopunit',
15+
name='date',
16+
field=models.CharField(max_length=40),
17+
),
18+
]

shop/models.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
from django.db import models
2-
from django.contrib.postgres.fields import ArrayField
32
from .custom_types import SHOP_UNIT_TYPES
43

54

65
class ShopUnit(models.Model):
76
id = models.CharField(max_length=100, null=False, primary_key=True)
87
name = models.CharField(max_length=100, null=False)
9-
date = models.DateTimeField(null=False)
8+
date = models.CharField(max_length=40, null=False)
109
parentId = models.CharField(max_length=100, null=True)
1110
type = models.CharField(max_length=100, null=False, choices=SHOP_UNIT_TYPES)
1211
price = models.IntegerField(null=True, default=0)

shop/utils.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from datetime import datetime
22
from uuid import UUID
3-
4-
from dateutil import parser
53
from .custom_types import SHOP_UNIT_TYPES
64
from .models import ShopUnit
75

@@ -108,6 +106,18 @@ def update_parent_prices_after_item_updating(nexts_initial, price: int, count: i
108106
nexts = ShopUnit.objects.filter(id=parent.parentId)
109107

110108

109+
def update_parents_date_after_item_updating(nexts_initial, date: str) -> None:
110+
print('UPDATING PARENTS DATE')
111+
nexts = nexts_initial
112+
113+
while len(nexts) != 0:
114+
parent = nexts[0]
115+
print('parent ', parent.name)
116+
parent.date = date
117+
parent.save()
118+
nexts = ShopUnit.objects.filter(id=parent.parentId)
119+
120+
111121
def create_new_item(item: dict, date: str) -> None:
112122
if item['type'] == SHOP_UNIT_TYPES[0][0]: # category
113123
created_object = ShopUnit.objects.create(
@@ -116,7 +126,7 @@ def create_new_item(item: dict, date: str) -> None:
116126
parentId=item['parentId'],
117127
type=item['type'],
118128
price=None,
119-
date=parser.parse(date),
129+
date=date,
120130
totally_inner_goods_count=0,
121131
total_inner_sum=0
122132
)
@@ -127,7 +137,7 @@ def create_new_item(item: dict, date: str) -> None:
127137
parentId=item['parentId'],
128138
type=item['type'],
129139
price=item['price'],
130-
date=parser.parse(date),
140+
date=date,
131141
totally_inner_goods_count=1,
132142
total_inner_sum=item['price']
133143
)
@@ -162,7 +172,7 @@ def update_existing_item(item: dict, date: str) -> None:
162172
)
163173

164174
existing_item.name = item['name']
165-
existing_item.date = parser.parse(date)
175+
existing_item.date = date
166176

167177
if item['type'] != SHOP_UNIT_TYPES[0][0]:
168178
existing_item.price = item['price']
@@ -182,6 +192,7 @@ def update_existing_item(item: dict, date: str) -> None:
182192
new_parent.save()
183193

184194
update_parent_prices_after_item_updating(ShopUnit.objects.filter(id=existing_item.parentId), existing_item.total_inner_sum, existing_item.totally_inner_goods_count)
195+
update_parents_date_after_item_updating(ShopUnit.objects.filter(id=existing_item.parentId), date)
185196

186197
existing_item.save()
187198

0 commit comments

Comments
 (0)