|
|
|
|
@ -13,22 +13,20 @@ def get_int(value): |
|
|
|
|
return value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_theme(value): |
|
|
|
|
objects = value.theme.all() |
|
|
|
|
return ','.join(str(obj.id) for obj in objects) |
|
|
|
|
def get_place(place): |
|
|
|
|
if place: |
|
|
|
|
return place.url |
|
|
|
|
return '' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_tag(tag, theme): |
|
|
|
|
tags = tag.all() |
|
|
|
|
themes = theme.all() |
|
|
|
|
result = '' |
|
|
|
|
for theme in themes: |
|
|
|
|
# list of tags with current theme |
|
|
|
|
tag_list = [str(tag.id) for tag in tags if tag.theme == theme] |
|
|
|
|
def get_theme(value): |
|
|
|
|
theme_ids = [str(item['id']) for item in value.all().values('id')] |
|
|
|
|
return ','.join(theme_ids) |
|
|
|
|
|
|
|
|
|
result += '['+','.join(tag_list)+']' |
|
|
|
|
|
|
|
|
|
return result |
|
|
|
|
def get_tag(value): |
|
|
|
|
tag_names = [item['name'] for item in value.all().values('name')] |
|
|
|
|
return ','.join(tag_names) |
|
|
|
|
|
|
|
|
|
def get_place_type(value): |
|
|
|
|
for t in EXPOSITION_TYPE: |
|
|
|
|
@ -36,6 +34,31 @@ def get_place_type(value): |
|
|
|
|
return t[1] |
|
|
|
|
return t[0][1] |
|
|
|
|
|
|
|
|
|
def get_periodic(value): |
|
|
|
|
if value: |
|
|
|
|
value = float(value) |
|
|
|
|
periodic = {0: '', 1.0: u'Ежегодно', 2.0: u'2 раза в год', 3.0: u'3 раза в год', |
|
|
|
|
4.0: u'4 раза в год', 5.0: u'5 раз в год', 0.5: u'Раз в 2 года', |
|
|
|
|
0.33: u'Раз в 3 года', 0.25: u'Раз в 4 года'} |
|
|
|
|
return periodic.get(value, '') |
|
|
|
|
return '' |
|
|
|
|
|
|
|
|
|
def get_date(value): |
|
|
|
|
if value: |
|
|
|
|
return str(value) |
|
|
|
|
return '' |
|
|
|
|
|
|
|
|
|
def get_quality(value, field): |
|
|
|
|
flags = {u'UFI': 'ufi', u'РСВЯ': 'rsva', u'EXPORATING': 'exporating'} |
|
|
|
|
v = flags.get(field) |
|
|
|
|
if v: |
|
|
|
|
result = getattr(value, v).is_set |
|
|
|
|
if result: |
|
|
|
|
return '1' |
|
|
|
|
|
|
|
|
|
return '' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
place_settings=[ |
|
|
|
|
{'name': 'id', 'verbose_name': u'id', 'type': get_int, 'width':1500}, |
|
|
|
|
@ -73,50 +96,6 @@ place_settings=[ |
|
|
|
|
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
field_settings = [ |
|
|
|
|
{'name': 'id', 'verbose_name': u'id', 'type': get_int, 'width':1500}, |
|
|
|
|
{'name': 'url', 'verbose_name': u'url', 'type': unicode}, |
|
|
|
|
{'name': 'name', 'verbose_name': u'Название', 'type': unicode}, |
|
|
|
|
#{'name': 'type', 'verbose_name': u'Тип', 'type': get_place_type, 'width':8000}, |
|
|
|
|
{'name': 'data_begin', 'verbose_name': u'Дата начала', 'type': unicode}, |
|
|
|
|
{'name': 'data_end', 'verbose_name': u'Дата окончания', 'type': unicode}, |
|
|
|
|
{'name': 'audience', 'verbose_name': u'Аудитория', 'type': get_audience}, |
|
|
|
|
{'name': 'main_title', 'verbose_name': u'Краткое описание', 'type': unicode}, |
|
|
|
|
{'name': 'description', 'verbose_name': u'Описание', 'type': unicode}, |
|
|
|
|
{'name': 'country', 'verbose_name': u'Страна', 'type': unicode}, |
|
|
|
|
{'name': 'city', 'verbose_name': u'Город', 'type': unicode}, |
|
|
|
|
# {'name': 'theme', 'verbose_name': u'Тематика', 'type': get_theme, 'width':8000}, |
|
|
|
|
{'name': 'tag', 'verbose_name': u'Теги', 'type': get_tag, 'width':8000}, |
|
|
|
|
{'name': 'address', 'verbose_name': u'Адрес', 'type': unicode}, |
|
|
|
|
#{'name': 'periodic', 'verbose_name': 'Периодичность', 'type': str}, |
|
|
|
|
{'name': 'web_page', 'verbose_name': u'Веб страница', 'type': unicode}, |
|
|
|
|
{'name': 'email', 'verbose_name': u'Email', 'type': unicode}, |
|
|
|
|
{'name': 'phone', 'verbose_name': u'Телефон', 'type': get_int}, |
|
|
|
|
{'name': 'time', 'verbose_name': u'Время проведения', 'type': unicode}, |
|
|
|
|
{'name': 'products', 'verbose_name': u'Экспонируемые продукты', 'type': unicode}, |
|
|
|
|
{'name': 'foundation', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
#{'name': 'events_number', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
{'name': 'staff_number', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
{'name': 'specialization', 'verbose_name': u'Год основания', 'type': unicode}, |
|
|
|
|
{'name': 'foundation_year', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
{'name': 'tax', 'verbose_name': u'Налог включен', 'type': get_bool, 'width':1000}, |
|
|
|
|
{'name': 'currency', 'verbose_name': u'Валюта', 'type': unicode}, |
|
|
|
|
{'name': 'max_price', 'verbose_name': u'Максимальная цена', 'type': get_int}, |
|
|
|
|
{'name': 'min_price', 'verbose_name': u'Минимальная цена', 'type': get_int}, |
|
|
|
|
{'name': 'registration_payment', 'verbose_name': u'Регистрационный взнос', 'type': get_int}, |
|
|
|
|
{'name': 'min_closed_area', 'verbose_name': u'Минимальная цена закрытой НЕ оборудованной площади', 'type': get_int}, |
|
|
|
|
{'name': 'max_closed_area', 'verbose_name': u'Максимальная цена закрытой НЕ оборудованной площади', 'type': get_int}, |
|
|
|
|
{'name': 'min_closed_equipped_area', 'verbose_name': u'Минимальная цена закрытой оборудованной площади ', 'type': get_int}, |
|
|
|
|
{'name': 'max_closed_equipped_area', 'verbose_name': u'Максимальная цена закрытой оборудованной площади', 'type': get_int}, |
|
|
|
|
{'name': 'min_open_area', 'verbose_name': u'Минимальная цена закрытой площади', 'type': get_int}, |
|
|
|
|
{'name': 'max_open_area', 'verbose_name': u'Максимальная цена открытой площади', 'type': get_int}, |
|
|
|
|
{'name': 'min_area', 'verbose_name': u'Минимальная площадь', 'type': get_int}, |
|
|
|
|
{'name': 'max_area', 'verbose_name': u'Максимальная площадь', 'type': get_int}, |
|
|
|
|
{'name': 'is_published', 'verbose_name': u'Опубликована', 'type': get_bool}, |
|
|
|
|
{'name': 'canceled_by_administrator', 'verbose_name': u'Отменена администратором', 'type': get_bool} |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def to_theme_type(st): |
|
|
|
|
if not st: |
|
|
|
|
@ -289,6 +268,9 @@ def save_halls(obj, value): |
|
|
|
|
print('---------------------------------') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
place_exp_sett = { |
|
|
|
|
u'ID':{u'field': u'id', u'func': to_int}, |
|
|
|
|
u'Название ВЦ':{u'field': u'name', u'func': unicode}, |
|
|
|
|
@ -341,6 +323,140 @@ article_sett = { |
|
|
|
|
u'Создана':{u'field': u'created', u'func': to_datetime} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
event_export_sett = [ |
|
|
|
|
{'name': 'id', 'verbose_name': u'ID', 'type': get_int, 'width':1500}, |
|
|
|
|
{'name': 'url', 'verbose_name': u'Url', 'type': unicode}, |
|
|
|
|
{'name': 'name', 'verbose_name': u'Название', 'type': unicode}, |
|
|
|
|
{'name': 'main_title', 'verbose_name': u'Краткое описание', 'type': unicode}, |
|
|
|
|
{'name': 'data_begin', 'verbose_name': u'Дата начала:(YYYY-MM-DD)', 'type': unicode}, |
|
|
|
|
{'name': 'data_end', 'verbose_name': u'Дата окончания:(YYYY-MM-DD)', 'type': unicode}, |
|
|
|
|
{'name': 'country', 'verbose_name': u'Страна', 'type': unicode}, |
|
|
|
|
{'name': 'city', 'verbose_name': u'Город', 'type': unicode}, |
|
|
|
|
{'name': 'place', 'verbose_name': u'Место проведения', 'type': get_place}, |
|
|
|
|
{'name': 'theme', 'verbose_name': u'ID Тематики', 'type': get_theme, 'width':8000}, |
|
|
|
|
{'name': 'tag', 'verbose_name': u'Теги', 'type': get_tag, 'width':8000}, |
|
|
|
|
{'name': 'description', 'verbose_name': u'Описание события', 'type': unicode}, |
|
|
|
|
{'name': 'periodic', 'verbose_name': 'Периодичность', 'type': get_periodic}, |
|
|
|
|
{'name': 'audience', 'verbose_name': u'Аудитория', 'type': get_audience}, |
|
|
|
|
{'name': 'web_page', 'verbose_name': u'Официальный веб-сайт', 'type': unicode}, |
|
|
|
|
{'name': 'products', 'verbose_name': u'Экспонируемые продукты', 'type': unicode}, |
|
|
|
|
{'name': 'time', 'verbose_name': u'Время работы', 'type': unicode}, |
|
|
|
|
{'name': 'logo', 'verbose_name': u'Логотип', 'type': unicode}, |
|
|
|
|
{'name': 'currency', 'verbose_name': u'Валюта', 'type': unicode}, |
|
|
|
|
{'name': 'price_day', 'verbose_name': u'Стоимость билета 1 день', 'type': unicode}, |
|
|
|
|
{'name': 'price_all', 'verbose_name': u'Стоимость билета все дни', 'type': unicode}, |
|
|
|
|
{'name': 'pre_condition', 'verbose_name': u'Условия предварительной регистрации', 'type': unicode}, |
|
|
|
|
{'name': 'price_day_bar', 'verbose_name': u'Стоимость на стойке 1 день', 'type': unicode}, |
|
|
|
|
{'name': 'price_all_bar', 'verbose_name': u'Стоимость на стойке все дни', 'type': unicode}, |
|
|
|
|
{'name': 'stand_condition', 'verbose_name': u'Условия регистрации на стойке', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Примечание по посещению', 'type': unicode}, |
|
|
|
|
{'name': 'price_catalog', 'verbose_name': u'Каталог', 'type': get_int}, |
|
|
|
|
{'name': 'tax', 'verbose_name': u'Налог включен', 'type': get_bool, 'width':1000}, |
|
|
|
|
{'name': 'foundation_year', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
{'name': 'visitors', 'verbose_name': u'Посетители', 'type': get_int}, |
|
|
|
|
{'name': 'members', 'verbose_name': u'Участники', 'type': get_int}, |
|
|
|
|
#{'name': 'visit_note', 'verbose_name': u'Страны', 'type': unicode}, !!! delete from import |
|
|
|
|
{'name': 'area', 'verbose_name': u'Площадь', 'type': get_int}, |
|
|
|
|
{'name': 'min_closed_area', 'verbose_name': u'Min_Raw кв.м.', 'type': get_int}, |
|
|
|
|
{'name': 'max_closed_area', 'verbose_name': u'Max_Raw кв.м.', 'type': get_int}, |
|
|
|
|
{'name': 'min_closed_equipped_area', 'verbose_name': u'Min_Pack кв.м.', 'type': get_int}, |
|
|
|
|
{'name': 'max_closed_equipped_area', 'verbose_name': u'Max_Pack кв.м.', 'type': get_int}, |
|
|
|
|
{'name': 'max_open_area', 'verbose_name': u'Открытая площадь', 'type': get_int}, |
|
|
|
|
{'name': 'min_stand_size', 'verbose_name': u'Мин. Площадь кв.м.', 'type': get_int}, |
|
|
|
|
{'name': 'registration_payment', 'verbose_name': u'Регистрационный взнос', 'type': get_int}, |
|
|
|
|
{'name': 'participation_note', 'verbose_name': u'Примечание по участии', 'type': unicode}, |
|
|
|
|
{'name': 'application_deadline', 'verbose_name': u'Крайний срок подачи заявки', 'type': get_date}, |
|
|
|
|
{'name': 'quality_label', 'verbose_name': u'UFI', 'type': get_quality}, #???? |
|
|
|
|
{'name': 'quality_label', 'verbose_name': u'РСВЯ', 'type': get_quality},#??? |
|
|
|
|
{'name': 'quality_label', 'verbose_name': u'EXPORATING', 'type': get_quality}, #??? |
|
|
|
|
{'name': 'canceled_by_administrator', 'verbose_name': u'Отменена администратором', 'type': get_bool}, |
|
|
|
|
{'name': 'expohit', 'verbose_name': u'ExpoHIT', 'type': get_bool}, |
|
|
|
|
{'name': 'is_published', 'verbose_name': u'Опубликована', 'type': get_bool}, |
|
|
|
|
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
field_settings = [ |
|
|
|
|
{'name': 'id', 'verbose_name': u'ID', 'type': get_int, 'width':1500}, |
|
|
|
|
{'name': 'url', 'verbose_name': u'Url', 'type': unicode}, |
|
|
|
|
{'name': 'name', 'verbose_name': u'Название', 'type': unicode}, |
|
|
|
|
{'name': 'main_title', 'verbose_name': u'Краткое описание', 'type': unicode}, |
|
|
|
|
#{'name': 'type', 'verbose_name': u'Тип', 'type': get_place_type, 'width':8000}, |
|
|
|
|
{'name': 'data_begin', 'verbose_name': u'Дата начала:(YYYY-MM-DD)', 'type': unicode}, |
|
|
|
|
{'name': 'data_end', 'verbose_name': u'Дата окончания:(YYYY-MM-DD)', 'type': unicode}, |
|
|
|
|
{'name': 'country', 'verbose_name': u'Страна', 'type': unicode}, |
|
|
|
|
{'name': 'city', 'verbose_name': u'Город', 'type': unicode}, |
|
|
|
|
#{'name': 'place', 'verbose_name': u'Место проведения', 'type': unicode}, |
|
|
|
|
{'name': 'theme', 'verbose_name': u'ID Тематики', 'type': get_theme, 'width':8000}, |
|
|
|
|
{'name': 'tag', 'verbose_name': u'Теги', 'type': get_tag, 'width':8000}, |
|
|
|
|
{'name': 'description', 'verbose_name': u'Описание события', 'type': unicode}, |
|
|
|
|
{'name': 'periodic', 'verbose_name': 'Периодичность', 'type': str}, |
|
|
|
|
{'name': 'audience', 'verbose_name': u'Аудитория', 'type': get_audience}, |
|
|
|
|
{'name': 'web_page', 'verbose_name': u'Официальный веб-сайт', 'type': unicode}, |
|
|
|
|
{'name': 'products', 'verbose_name': u'Экспонируемые продукты', 'type': unicode}, |
|
|
|
|
{'name': 'time', 'verbose_name': u'Время работы', 'type': unicode}, |
|
|
|
|
{'name': 'logo', 'verbose_name': u'Логотип', 'type': unicode}, |
|
|
|
|
{'name': 'currency', 'verbose_name': u'Валюта', 'type': unicode}, |
|
|
|
|
{'name': 'price_day', 'verbose_name': u'Стоимость билета 1 день', 'type': unicode}, |
|
|
|
|
{'name': 'price_all', 'verbose_name': u'Стоимость билета все дни', 'type': unicode}, |
|
|
|
|
{'name': 'pre_condition', 'verbose_name': u'Условия предварительной регистрации', 'type': unicode}, |
|
|
|
|
{'name': 'price_day_bar', 'verbose_name': u'Стоимость на стойке 1 день', 'type': unicode}, |
|
|
|
|
{'name': 'price_all_bar', 'verbose_name': u'Стоимость на стойке все дни', 'type': unicode}, |
|
|
|
|
{'name': 'stand_condition', 'verbose_name': u'Условия регистрации на стойке', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Примечание по посещению', 'type': unicode}, |
|
|
|
|
{'name': 'price_catalog', 'verbose_name': u'Каталог', 'type': get_int}, |
|
|
|
|
{'name': 'tax', 'verbose_name': u'Налог включен', 'type': get_bool, 'width':1000}, |
|
|
|
|
{'name': 'foundation_year', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Посетители', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Участники', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Страны', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Площадь', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Min_Raw кв.м.', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Max_Raw кв.м.', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Min_Pack кв.м.', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Max_Pack кв.м.', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Открытая площадь', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Мин. Площадь кв.м.', 'type': unicode}, |
|
|
|
|
|
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Примечание по участии', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'Крайний срок подачи заявки', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'UFI', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'РСВЯ', 'type': unicode}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'EXPORATING', 'type': unicode}, |
|
|
|
|
{'name': 'canceled_by_administrator', 'verbose_name': u'Отменена администратором', 'type': get_bool}, |
|
|
|
|
{'name': 'visit_note', 'verbose_name': u'ExpoHIT', 'type': unicode}, |
|
|
|
|
|
|
|
|
|
{'name': 'address', 'verbose_name': u'Адрес', 'type': unicode}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{'name': 'email', 'verbose_name': u'Email', 'type': unicode}, |
|
|
|
|
{'name': 'phone', 'verbose_name': u'Телефон', 'type': get_int}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{'name': 'foundation', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
#{'name': 'events_number', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
{'name': 'staff_number', 'verbose_name': u'Год основания', 'type': get_int}, |
|
|
|
|
{'name': 'specialization', 'verbose_name': u'Год основания', 'type': unicode}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{'name': 'max_price', 'verbose_name': u'Максимальная цена', 'type': get_int}, |
|
|
|
|
{'name': 'min_price', 'verbose_name': u'Минимальная цена', 'type': get_int}, |
|
|
|
|
{'name': 'registration_payment', 'verbose_name': u'Регистрационный взнос', 'type': get_int}, |
|
|
|
|
{'name': 'min_closed_area', 'verbose_name': u'Минимальная цена закрытой НЕ оборудованной площади', 'type': get_int}, |
|
|
|
|
{'name': 'max_closed_area', 'verbose_name': u'Максимальная цена закрытой НЕ оборудованной площади', 'type': get_int}, |
|
|
|
|
{'name': 'min_closed_equipped_area', 'verbose_name': u'Минимальная цена закрытой оборудованной площади ', 'type': get_int}, |
|
|
|
|
{'name': 'max_closed_equipped_area', 'verbose_name': u'Максимальная цена закрытой оборудованной площади', 'type': get_int}, |
|
|
|
|
{'name': 'min_open_area', 'verbose_name': u'Минимальная цена закрытой площади', 'type': get_int}, |
|
|
|
|
{'name': 'max_open_area', 'verbose_name': u'Максимальная цена открытой площади', 'type': get_int}, |
|
|
|
|
{'name': 'min_area', 'verbose_name': u'Минимальная площадь', 'type': get_int}, |
|
|
|
|
{'name': 'max_area', 'verbose_name': u'Максимальная площадь', 'type': get_int}, |
|
|
|
|
{'name': 'is_published', 'verbose_name': u'Опубликована', 'type': get_bool}, |
|
|
|
|
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event_sett = { |
|
|
|
|
u'ID':{u'field': u'id', u'func': to_int}, |
|
|
|
|
u'Url':{u'field': u'url', u'func': unicode}, |
|
|
|
|
|