add xml
This commit is contained in:
parent
f42f571053
commit
d09776c8fa
|
|
@ -185,6 +185,14 @@ class GuideElementExportXMLView(generics.ListAPIView):
|
||||||
serializer_class = serializers.GuideElementBaseSerializer
|
serializer_class = serializers.GuideElementBaseSerializer
|
||||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
"""Overridden get_queryset method."""
|
||||||
|
guide = get_object_or_404(
|
||||||
|
models.Guide.objects.all(), pk=self.kwargs.get('pk'))
|
||||||
|
tasks.export_guide(guide_id=guide.id, user_id=request.user.id, file_type='xml')
|
||||||
|
return Response({"success": _('The file will be sent to your email.')},
|
||||||
|
status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class GuideElementExportDOCView(generics.ListAPIView):
|
class GuideElementExportDOCView(generics.ListAPIView):
|
||||||
"""Guide element export doc view."""
|
"""Guide element export doc view."""
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ import docx
|
||||||
import xlsxwriter
|
import xlsxwriter
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.mail import EmailMultiAlternatives
|
from django.core.mail import EmailMultiAlternatives
|
||||||
from docx.blkcntnr import BlockItemContainer
|
|
||||||
from timetable.models import Timetable
|
|
||||||
from docx.shared import RGBColor, Pt
|
from docx.shared import RGBColor, Pt
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
from utils.methods import section_name_into_index_name
|
from utils.methods import section_name_into_index_name
|
||||||
|
|
||||||
logging.basicConfig(format='[%(levelname)s] %(message)s', level=logging.INFO)
|
logging.basicConfig(format='[%(levelname)s] %(message)s', level=logging.INFO)
|
||||||
|
|
@ -232,8 +232,8 @@ class SendExportBase:
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def get_emails_to(self):
|
def get_emails_to(self):
|
||||||
return [
|
return [
|
||||||
'a.feteleu@spider.ru',
|
# 'a.feteleu@spider.ru',
|
||||||
# 'kuzmenko.da@gmail.com',
|
'kuzmenko.da@gmail.com',
|
||||||
# 'sinapsit@yandex.ru'
|
# 'sinapsit@yandex.ru'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -432,3 +432,27 @@ class SendGuideExport(SendExportBase):
|
||||||
|
|
||||||
if row.pop("node_name") == "EstablishmentNode":
|
if row.pop("node_name") == "EstablishmentNode":
|
||||||
file_writer.writerow(row.values())
|
file_writer.writerow(row.values())
|
||||||
|
|
||||||
|
def make_xml_file(self):
|
||||||
|
# create the file structure
|
||||||
|
data = ET.Element('data')
|
||||||
|
items = ET.SubElement(data, 'items')
|
||||||
|
city = None
|
||||||
|
for row in self.get_data():
|
||||||
|
row_city = row.get('city_name')
|
||||||
|
if row_city:
|
||||||
|
city = row_city
|
||||||
|
else:
|
||||||
|
row['city_name'] = city
|
||||||
|
|
||||||
|
if row.pop("node_name") == "EstablishmentNode":
|
||||||
|
for key, value in row.items():
|
||||||
|
item1 = ET.SubElement(items, 'item')
|
||||||
|
item1.set('name', key)
|
||||||
|
item1.text = str(value)
|
||||||
|
|
||||||
|
# create a new XML file with the results
|
||||||
|
tree = ET.ElementTree(data)
|
||||||
|
with open(self.file_path, 'bw') as f:
|
||||||
|
tree.write(f)
|
||||||
|
self.success = True
|
||||||
|
|
|
||||||
|
|
@ -102,8 +102,8 @@ ELASTICSEARCH_DSL = {
|
||||||
|
|
||||||
ELASTICSEARCH_INDEX_NAMES = {
|
ELASTICSEARCH_INDEX_NAMES = {
|
||||||
# 'search_indexes.documents.news': 'local_news',
|
# 'search_indexes.documents.news': 'local_news',
|
||||||
'search_indexes.documents.establishment': 'local_establishment',
|
'search_indexes.documents.establishment': 'local_establishment',
|
||||||
'search_indexes.documents.product': 'local_product',
|
'search_indexes.documents.product': 'local_product',
|
||||||
'search_indexes.documents.tag_category': 'local_tag_category',
|
'search_indexes.documents.tag_category': 'local_tag_category',
|
||||||
}
|
}
|
||||||
ELASTICSEARCH_DSL_AUTOSYNC = False
|
ELASTICSEARCH_DSL_AUTOSYNC = False
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user