This commit is contained in:
Mohamed Nouffer
2022-04-27 15:47:37 +05:30
parent 4bc68e947e
commit 11037587df
7 changed files with 202 additions and 77 deletions

View File

@ -18,6 +18,7 @@ from .mapping import location_mapping, location_line_mapping, location_polygon_m
from .choices import LAYER_CHOICES
from django.contrib.gis.utils import LayerMapping
from django.apps import apps
from django.db import transaction
import csv
import codecs
@ -369,13 +370,35 @@ def remove_bom_inplace(path):
@receiver(pre_save, sender=Location)
def location_presave(sender, instance, *args, **kwargs):
#print("------############------------", instance.location_id)
Location.objects.filter(location_id = instance.location_id).delete()
@receiver(pre_save, sender=Location_line)
def location_presave(sender, instance, *args, **kwargs):
Location_line.objects.filter(location_id = instance.location_id).delete()
@receiver(pre_save, sender=Location_polygon)
def location_presave(sender, instance, *args, **kwargs):
Location_polygon.objects.filter(location_id = instance.location_id).delete()
@receiver(pre_save, sender=ShapeLayers)
def my_callback(sender, instance, *args, **kwargs):
instance.table_name = getTableForModel(instance.layerof)
def deletePrevious(mdl, fields):
with transaction.atomic():
mdl.objects.filter(location_id = int(fields[0])).delete();
@receiver(post_save, sender=ShapeLayers)
def publish_date(sender, instance, created, **kwargs):
def publish_data(sender, instance, created, **kwargs):
file = instance.file.path
file_format = os.path.basename(file).split('.')[-1]
file_name = os.path.basename(file).split('.')[0]
@ -436,80 +459,84 @@ def updateLocation(mdl, fields):
print(f"Updating {fields[0]} - {fields[1]}")
print(mdl.objects.filter(location_id = int(fields[0])))
print("-------")
mdl.objects.filter(location_id = int(fields[0])).update(
location_name = fields[1] if len(fields) > 1 else '',
category = fields[2] if len(fields) > 1 else '',
zip = fields[3] if len(fields) > 1 else '',
address = fields[4] if len(fields) > 1 else '',
prefecture = fields[5] if len(fields) > 1 else '',
area = fields[6] if len(fields) > 1 else '',
city = fields[7] if len(fields) > 1 else '',
latitude = fields[8] if len(fields) > 1 else '',
longitude = fields[9] if len(fields) > 1 else '',
photos = fields[10] if len(fields) > 1 else '',
videos = fields[11] if len(fields) > 1 else '',
webcontents = fields[12] if len(fields) > 1 else '',
status = fields[13] if len(fields) > 1 else '',
portal = fields[14] if len(fields) > 1 else '',
group = fields[15] if len(fields) > 1 else '',
phone = fields[16] if len(fields) > 1 else '',
fax = fields[17] if len(fields) > 1 else '',
email = fields[18] if len(fields) > 1 else '',
facility = fields[19] if len(fields) > 1 else '',
remark = fields[20] if len(fields) > 1 else '',
parammeters = fields[21] if len(fields) > 1 else '',
tags = fields[22] if len(fields) > 1 else ''
)
with transaction.atomic():
mdl.objects.filter(location_id = int(fields[0])).update(
location_name = fields[1] if len(fields) > 1 else '',
category = fields[2] if len(fields) > 1 else '',
zip = fields[3] if len(fields) > 1 else '',
address = fields[4] if len(fields) > 1 else '',
prefecture = fields[5] if len(fields) > 1 else '',
area = fields[6] if len(fields) > 1 else '',
city = fields[7] if len(fields) > 1 else '',
latitude = fields[8] if len(fields) > 1 else '',
longitude = fields[9] if len(fields) > 1 else '',
photos = fields[10] if len(fields) > 1 else '',
videos = fields[11] if len(fields) > 1 else '',
webcontents = fields[12] if len(fields) > 1 else '',
status = fields[13] if len(fields) > 1 else '',
portal = fields[14] if len(fields) > 1 else '',
group = fields[15] if len(fields) > 1 else '',
phone = fields[16] if len(fields) > 1 else '',
fax = fields[17] if len(fields) > 1 else '',
email = fields[18] if len(fields) > 1 else '',
facility = fields[19] if len(fields) > 1 else '',
remark = fields[20] if len(fields) > 1 else '',
parammeters = fields[21] if len(fields) > 1 else '',
tags = fields[22] if len(fields) > 1 else ''
)
def updateLineTable(mdl, fields):
print(f"Updating {fields[0]} - {fields[1]}")
print(mdl.objects.filter(location_id = int(fields[0])))
print("-------")
mdl.objects.filter(location_id = int(fields[0])).update(
location_name= fields[1] if len(fields) > 1 else '',
category=fields[2] if len(fields) > 2 else '',
zip=fields[3] if len(fields) > 3 else '',
address=fields[4] if len(fields) > 4 else '',
prefecture=fields[5] if len(fields) > 5 else '',
area=fields[6] if len(fields) > 6 else '',
city=fields[7] if len(fields) > 7 else '',
photos=fields[8] if len(fields) > 8 else '',
videos=fields[9] if len(fields) > 9 else '',
webcontents=fields[10] if len(fields) > 10 else '',
status=fields[11] if len(fields) > 11 else '',
portal=fields[12] if len(fields) > 12 else '',
group=fields[13] if len(fields) > 13 else '',
phone=fields[14] if len(fields) > 14 else '',
fax=fields[15] if len(fields) > 15 else '',
email=fields[16] if len(fields) > 16 else '',
facility=fields[17] if len(fields) > 17 else '',
remark=fields[18] if len(fields) > 18 else '',
tags=fields[19] if len(fields) > 19 else '',
parammeters=fields[20] if len(fields) > 20 else ''
)
with transaction.atomic():
mdl.objects.filter(location_id = int(fields[0])).update(
location_name= fields[1] if len(fields) > 1 else '',
category=fields[2] if len(fields) > 2 else '',
zip=fields[3] if len(fields) > 3 else '',
address=fields[4] if len(fields) > 4 else '',
prefecture=fields[5] if len(fields) > 5 else '',
area=fields[6] if len(fields) > 6 else '',
city=fields[7] if len(fields) > 7 else '',
photos=fields[8] if len(fields) > 8 else '',
videos=fields[9] if len(fields) > 9 else '',
webcontents=fields[10] if len(fields) > 10 else '',
status=fields[11] if len(fields) > 11 else '',
portal=fields[12] if len(fields) > 12 else '',
group=fields[13] if len(fields) > 13 else '',
phone=fields[14] if len(fields) > 14 else '',
fax=fields[15] if len(fields) > 15 else '',
email=fields[16] if len(fields) > 16 else '',
facility=fields[17] if len(fields) > 17 else '',
remark=fields[18] if len(fields) > 18 else '',
tags=fields[19] if len(fields) > 19 else '',
parammeters=fields[20] if len(fields) > 20 else ''
)
def updatePolygonTable(mdl, fields):
#print(f"Updated {fields[0]} - {fields[1]}")
mdl.objects.filter(location_id = fields[0]).update(
location_name= fields[1] if len(fields) > 1 else '',
category=fields[2] if len(fields) > 2 else '',
zip=fields[3] if len(fields) > 3 else '',
address=fields[4] if len(fields) > 4 else '',
prefecture=fields[5] if len(fields) > 5 else '',
area=fields[6] if len(fields) > 6 else '',
city=fields[7] if len(fields) > 7 else '',
photos=fields[8] if len(fields) > 8 else '',
videos=fields[9] if len(fields) > 9 else '',
webcontents=fields[10] if len(fields) > 10 else '',
status=fields[11] if len(fields) > 11 else '',
portal=fields[12] if len(fields) > 12 else '',
group=fields[13] if len(fields) > 13 else '',
phone=fields[14] if len(fields) > 14 else '',
fax=fields[15] if len(fields) > 15 else '',
email=fields[16] if len(fields) > 16 else '',
facility=fields[17] if len(fields) > 17 else '',
remark=fields[18] if len(fields) > 18 else '',
tags=fields[19] if len(fields) > 19 else '',
parammeters=fields[20] if len(fields) > 20 else ''
)
with transaction.atomic():
mdl.objects.filter(location_id = fields[0]).update(
location_name= fields[1] if len(fields) > 1 else '',
category=fields[2] if len(fields) > 2 else '',
zip=fields[3] if len(fields) > 3 else '',
address=fields[4] if len(fields) > 4 else '',
prefecture=fields[5] if len(fields) > 5 else '',
area=fields[6] if len(fields) > 6 else '',
city=fields[7] if len(fields) > 7 else '',
photos=fields[8] if len(fields) > 8 else '',
videos=fields[9] if len(fields) > 9 else '',
webcontents=fields[10] if len(fields) > 10 else '',
status=fields[11] if len(fields) > 11 else '',
portal=fields[12] if len(fields) > 12 else '',
group=fields[13] if len(fields) > 13 else '',
phone=fields[14] if len(fields) > 14 else '',
fax=fields[15] if len(fields) > 15 else '',
email=fields[16] if len(fields) > 16 else '',
facility=fields[17] if len(fields) > 17 else '',
remark=fields[18] if len(fields) > 18 else '',
tags=fields[19] if len(fields) > 19 else '',
parammeters=fields[20] if len(fields) > 20 else ''
)