exit
This commit is contained in:
parent
1abe280ef7
commit
54f2290bbd
|
|
@ -10,93 +10,155 @@ class Command(BaseCommand):
|
||||||
help = 'Import collection'
|
help = 'Import collection'
|
||||||
|
|
||||||
def handle(self, *args, **kwargs):
|
def handle(self, *args, **kwargs):
|
||||||
|
# raw_qs = Collections.objects.raw('''
|
||||||
|
# select
|
||||||
|
# distinct
|
||||||
|
# a.id,
|
||||||
|
# a.collection_id,
|
||||||
|
# -- a.establishment_id,
|
||||||
|
# a.title,
|
||||||
|
# a.tag_name,
|
||||||
|
# a.slug,
|
||||||
|
# -- a.attachment_file_name,
|
||||||
|
# -- a.attachment_content_type,
|
||||||
|
# -- a.attachment_file_size,
|
||||||
|
# -- a.attachment_suffix_url,
|
||||||
|
# -- active as is_publish,
|
||||||
|
# a.country_code,
|
||||||
|
# -- a.geometries,
|
||||||
|
# a.description,
|
||||||
|
# min(a.start) AS start
|
||||||
|
# from
|
||||||
|
# (
|
||||||
|
# select distinct
|
||||||
|
# c.id,
|
||||||
|
# c.id as collection_id,
|
||||||
|
# m.establishment_id,
|
||||||
|
# c.title, c.tag_name,
|
||||||
|
# c.slug, c.attachment_file_name,
|
||||||
|
# c.attachment_content_type, c.attachment_file_size,
|
||||||
|
# c.attachment_suffix_url,
|
||||||
|
# active,
|
||||||
|
# s.country_code_2 as country_code,
|
||||||
|
# c.geometries,
|
||||||
|
# c.title as description,
|
||||||
|
# m.created_at as start
|
||||||
|
# from collections as c
|
||||||
|
# join metadata m on m.value = c.tag_name
|
||||||
|
# join establishments e on e.id = m.establishment_id
|
||||||
|
# join sites s on s.id = c.site_id
|
||||||
|
# where m.`key` = 'collection'
|
||||||
|
#
|
||||||
|
# union
|
||||||
|
#
|
||||||
|
# select distinct
|
||||||
|
# c.id,
|
||||||
|
# c.id as collection_id,
|
||||||
|
# m.establishment_id,
|
||||||
|
# c.title, c.tag_name,
|
||||||
|
# c.slug, c.attachment_file_name,
|
||||||
|
# c.attachment_content_type, c.attachment_file_size,
|
||||||
|
# c.attachment_suffix_url,
|
||||||
|
# active,
|
||||||
|
# s.country_code_2 as country_code,
|
||||||
|
# c.geometries,
|
||||||
|
# c.title as description,
|
||||||
|
# m.created_at as start
|
||||||
|
# from collections as c
|
||||||
|
# join metadata m on m.value = c.slug
|
||||||
|
# join establishments e on e.id = m.establishment_id
|
||||||
|
# join sites s on s.id = c.site_id
|
||||||
|
# where m.`key` = 'collection'
|
||||||
|
# ) a
|
||||||
|
# group by
|
||||||
|
# a.id,
|
||||||
|
# a.collection_id,
|
||||||
|
# -- a.establishment_id,
|
||||||
|
# a.title,
|
||||||
|
# a.tag_name,
|
||||||
|
# a.slug,
|
||||||
|
# -- a.attachment_file_name,
|
||||||
|
# -- a.attachment_content_type,
|
||||||
|
# -- a.attachment_file_size,
|
||||||
|
# -- a.attachment_suffix_url,
|
||||||
|
# -- active as is_publish,
|
||||||
|
# a.country_code,
|
||||||
|
# a.description
|
||||||
|
# ''')
|
||||||
|
# objects = []
|
||||||
|
# queryset = [vars(query) for query in raw_qs]
|
||||||
|
# for obj in queryset:
|
||||||
|
# # establishment = Establishment.objects.filter(old_id=obj['establishment_id']).first()
|
||||||
|
# lang = Language.objects.filter(locale=obj['country_code'])
|
||||||
|
# country = Country.objects.filter(languages__in=lang).first()
|
||||||
|
# if country:
|
||||||
|
# objects.append(
|
||||||
|
# Collection(name={"en-GB": obj['title']}, collection_type=Collection.ORDINARY,
|
||||||
|
# country=country,
|
||||||
|
# description=obj['description'],
|
||||||
|
# slug=obj['slug'], old_id=obj['collection_id'],
|
||||||
|
# start=obj['start']
|
||||||
|
# )
|
||||||
|
# )
|
||||||
|
# Collection.objects.bulk_create(objects)
|
||||||
|
|
||||||
raw_qs = Collections.objects.raw('''
|
raw_qs = Collections.objects.raw('''
|
||||||
select
|
select
|
||||||
distinct
|
distinct
|
||||||
a.id,
|
a.id,
|
||||||
a.collection_id,
|
a.collection_id,
|
||||||
-- a.establishment_id,
|
a.establishment_id
|
||||||
a.title,
|
from
|
||||||
a.tag_name,
|
|
||||||
a.slug,
|
|
||||||
-- a.attachment_file_name,
|
|
||||||
-- a.attachment_content_type,
|
|
||||||
-- a.attachment_file_size,
|
|
||||||
-- a.attachment_suffix_url,
|
|
||||||
-- active as is_publish,
|
|
||||||
a.country_code,
|
|
||||||
-- a.geometries,
|
|
||||||
a.description,
|
|
||||||
min(a.start) AS start
|
|
||||||
from
|
|
||||||
(
|
(
|
||||||
select distinct
|
select distinct
|
||||||
c.id,
|
c.id,
|
||||||
c.id as collection_id,
|
c.id as collection_id,
|
||||||
m.establishment_id,
|
m.establishment_id,
|
||||||
c.title, c.tag_name,
|
c.title, c.tag_name,
|
||||||
c.slug, c.attachment_file_name,
|
c.slug, c.attachment_file_name,
|
||||||
c.attachment_content_type, c.attachment_file_size,
|
c.attachment_content_type, c.attachment_file_size,
|
||||||
c.attachment_suffix_url,
|
c.attachment_suffix_url,
|
||||||
active,
|
active,
|
||||||
s.country_code_2 as country_code,
|
s.country_code_2 as country_code,
|
||||||
c.geometries,
|
c.geometries,
|
||||||
c.title as description,
|
c.title as description,
|
||||||
m.created_at as start
|
m.created_at as start
|
||||||
from collections as c
|
from collections as c
|
||||||
join metadata m on m.value = c.tag_name
|
join metadata m on m.value = c.tag_name
|
||||||
join establishments e on e.id = m.establishment_id
|
join establishments e on e.id = m.establishment_id
|
||||||
join sites s on s.id = c.site_id
|
join sites s on s.id = c.site_id
|
||||||
where m.`key` = 'collection'
|
where m.`key` = 'collection'
|
||||||
|
|
||||||
union
|
union
|
||||||
|
|
||||||
select distinct
|
select distinct
|
||||||
c.id,
|
c.id,
|
||||||
c.id as collection_id,
|
c.id as collection_id,
|
||||||
m.establishment_id,
|
m.establishment_id,
|
||||||
c.title, c.tag_name,
|
c.title, c.tag_name,
|
||||||
c.slug, c.attachment_file_name,
|
c.slug, c.attachment_file_name,
|
||||||
c.attachment_content_type, c.attachment_file_size,
|
c.attachment_content_type, c.attachment_file_size,
|
||||||
c.attachment_suffix_url,
|
c.attachment_suffix_url,
|
||||||
active,
|
active,
|
||||||
s.country_code_2 as country_code,
|
s.country_code_2 as country_code,
|
||||||
c.geometries,
|
c.geometries,
|
||||||
c.title as description,
|
c.title as description,
|
||||||
m.created_at as start
|
m.created_at as start
|
||||||
from collections as c
|
from collections as c
|
||||||
join metadata m on m.value = c.slug
|
join metadata m on m.value = c.slug
|
||||||
join establishments e on e.id = m.establishment_id
|
join establishments e on e.id = m.establishment_id
|
||||||
join sites s on s.id = c.site_id
|
join sites s on s.id = c.site_id
|
||||||
where m.`key` = 'collection'
|
where m.`key` = 'collection'
|
||||||
) a
|
) a
|
||||||
group by
|
''')
|
||||||
a.id,
|
|
||||||
a.collection_id,
|
|
||||||
-- a.establishment_id,
|
|
||||||
a.title,
|
|
||||||
a.tag_name,
|
|
||||||
a.slug,
|
|
||||||
-- a.attachment_file_name,
|
|
||||||
-- a.attachment_content_type,
|
|
||||||
-- a.attachment_file_size,
|
|
||||||
-- a.attachment_suffix_url,
|
|
||||||
-- active as is_publish,
|
|
||||||
a.country_code,
|
|
||||||
a.description
|
|
||||||
''')
|
|
||||||
objects = []
|
|
||||||
queryset = [vars(query) for query in raw_qs]
|
queryset = [vars(query) for query in raw_qs]
|
||||||
for obj in queryset:
|
for obj in queryset:
|
||||||
# establishment = Establishment.objects.filter(old_id=obj['establishment_id']).first()
|
print('COLLECT_ID: {}'.format(obj['collection_id']))
|
||||||
lang = Language.objects.filter(locale=obj['country_code'])
|
est = Establishment.objects.filter(old_id=obj['establishment_id'])
|
||||||
country = Country.objects.filter(languages__in=lang).first()
|
if est.exists():
|
||||||
objects.append(
|
inst = est.first()
|
||||||
Collection(name={"en-GB":obj['title']}, collection_type=Collection.ORDINARY,
|
collect = Collection.objects.filter(old_id=obj['collection_id'])
|
||||||
country=country,
|
for c in collect:
|
||||||
description=obj['description'],
|
inst.collections.add(c)
|
||||||
slug=obj['slug'], old_id=obj['collection_id'],
|
inst.save()
|
||||||
start=obj['start']
|
|
||||||
)
|
|
||||||
)
|
|
||||||
Collection.objects.bulk_create(objects)
|
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ class RegionSerializer(serializers.ModelSerializer):
|
||||||
print(data)
|
print(data)
|
||||||
if "subregion_code" in data and data["subregion_code"] is not None and data["subregion_code"].strip() != "":
|
if "subregion_code" in data and data["subregion_code"] is not None and data["subregion_code"].strip() != "":
|
||||||
try:
|
try:
|
||||||
parent_region = Region.objects.get(code=str(data['region_code']))
|
parent_region = Region.objects.filter(code=str(data['region_code'])).first()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise ValueError(f"Parent region error with {data}: {e}")
|
raise ValueError(f"Parent region error with {data}: {e}")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user