exit
This commit is contained in:
parent
1abe280ef7
commit
54f2290bbd
|
|
@ -10,93 +10,155 @@ class Command(BaseCommand):
|
|||
help = 'Import collection'
|
||||
|
||||
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('''
|
||||
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
|
||||
a.collection_id,
|
||||
a.establishment_id
|
||||
from
|
||||
(
|
||||
select distinct
|
||||
c.id,
|
||||
c.id as collection_id,
|
||||
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.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
|
||||
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
|
||||
|
||||
|
||||
union
|
||||
|
||||
select distinct
|
||||
c.id,
|
||||
c.id as collection_id,
|
||||
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.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
|
||||
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()
|
||||
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)
|
||||
print('COLLECT_ID: {}'.format(obj['collection_id']))
|
||||
est = Establishment.objects.filter(old_id=obj['establishment_id'])
|
||||
if est.exists():
|
||||
inst = est.first()
|
||||
collect = Collection.objects.filter(old_id=obj['collection_id'])
|
||||
for c in collect:
|
||||
inst.collections.add(c)
|
||||
inst.save()
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ class RegionSerializer(serializers.ModelSerializer):
|
|||
print(data)
|
||||
if "subregion_code" in data and data["subregion_code"] is not None and data["subregion_code"].strip() != "":
|
||||
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:
|
||||
raise ValueError(f"Parent region error with {data}: {e}")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user