intermediate commit

This commit is contained in:
Anatoly 2019-12-30 19:07:06 +03:00
parent e56f801e14
commit d3c723eb43
3 changed files with 49 additions and 25 deletions

View File

@ -976,8 +976,3 @@ class GuideElement(ProjectBaseMixin, MPTTModel):
def __str__(self):
"""Overridden dunder method."""
return self.guide_element_type.name if self.guide_element_type else self.id
@property
def advertorial_page(self):
if self.advertorial:
return self.advertorial.right_pages

View File

@ -239,10 +239,7 @@ class GuideElementExportSerializer(GuideElementBaseSerializer):
default=None)
metadata = serializers.ListField(source='establishment.metadata',
default=None)
# advertorial_number_of_pages = serializers.IntegerField(source='number_of_pages',
# default=None)
# advertorial_right_pages = serializers.IntegerField(source='right_pages',
# default=None)
advertorial = serializers.DictField(source='advertorial.__dict__', default=None)
# PRODUCT
product_name = serializers.CharField(source='product.name',
@ -279,8 +276,7 @@ class GuideElementExportSerializer(GuideElementBaseSerializer):
'review',
'price_level',
'metadata',
# 'advertorial_number_of_pages',
# 'advertorial_right_pages',
'advertorial',
'product_name',
'product_review',
'product_type',

View File

@ -381,7 +381,7 @@ class SendGuideExport(SendExportBase):
return f'export_{name}.{self.file_type}'
def get_headers(self):
headers = list(self.data[0].keys())
headers = list(self.get_data()[0].keys())
headers.pop(headers.index('node_name'))
self.success = True
return headers
@ -431,29 +431,32 @@ class SendGuideExport(SendExportBase):
objects = []
city_name = None
section_name = None
advertorial_page = None
ad_number_of_pages = None
ad_right_pages = None
for instance in init_data:
row_advertorial_page = instance.get('advertorial_page')
if row_advertorial_page:
advertorial_page = row_advertorial_page
for row in init_data:
row_advertorial = row.pop('advertorial')
if row_advertorial:
ad_number_of_pages = row_advertorial.get('number_of_pages')
ad_right_pages = row_advertorial.get('right_pages')
else:
instance['advertorial_page'] = advertorial_page
row['ad_number_of_pages'] = ad_number_of_pages
row['ad_right_pages'] = ad_right_pages
row_city = instance.get('city_name')
row_city = row.get('city_name')
if row_city:
city_name = row_city
else:
instance['city_name'] = city_name
row['city_name'] = city_name
row_section = instance.get('node_name')
row_section = row.get('node_name')
if row_section.endswith('SectionNode'):
section_name = row_section
else:
instance['section_name'] = section_name
row['section_name'] = section_name
if instance.pop('node_name', None) == 'EstablishmentNode':
objects.append(instance.items())
if row.pop('node_name', None) == 'EstablishmentNode':
objects.append(row.items())
return objects
def send(self):
@ -477,6 +480,9 @@ class SendGuideExport(SendExportBase):
# Write headers to CSV file
file_writer.writerow(file_header)
city = None
ad_number_of_pages = None
ad_right_pages = None
for row in self.get_data():
row_city = row.get('city_name')
if row_city:
@ -484,6 +490,14 @@ class SendGuideExport(SendExportBase):
else:
row['city_name'] = city
row_advertorial = row.get('advertorial')
if row_advertorial:
ad_number_of_pages = row_advertorial.get('number_of_pages')
ad_right_pages = row_advertorial.get('right_pages')
else:
row['ad_number_of_pages'] = ad_number_of_pages
row['ad_right_pages'] = ad_right_pages
if row.pop("node_name") == "EstablishmentNode":
file_writer.writerow(row.values())
@ -494,13 +508,22 @@ class SendGuideExport(SendExportBase):
wine_color = None
establishment_name = None
establishment_address = None
advertorial = None
ad_number_of_pages = None
ad_right_pages = None
# create the file structure
data = ET.Element('data')
products = ET.SubElement(data, 'products')
for row in self.get_data():
row_advertorial = row.pop('advertorial')
if row_advertorial:
ad_number_of_pages = row_advertorial.get('number_of_pages')
ad_right_pages = row_advertorial.get('right_pages')
else:
row['ad_number_of_pages'] = ad_number_of_pages
row['ad_right_pages'] = ad_right_pages
row_establishment_address = row.get('address')
if row_establishment_address:
establishment_address = row_establishment_address
@ -544,8 +567,18 @@ class SendGuideExport(SendExportBase):
data = ET.Element('data')
items = ET.SubElement(data, 'cities')
city = None
ad_number_of_pages = None
ad_right_pages = None
for row in self.get_data():
row_advertorial = row.pop('advertorial')
if row_advertorial:
ad_number_of_pages = row_advertorial.get('number_of_pages')
ad_right_pages = row_advertorial.get('right_pages')
else:
row['ad_number_of_pages'] = ad_number_of_pages
row['ad_right_pages'] = ad_right_pages
row_city = row.get('city_name')
if row_city:
city = row_city