You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.9 KiB
97 lines
2.9 KiB
from django.core.management.base import BaseCommand, CommandError
|
|
from company.models import Company
|
|
from theme.models import Theme, Tag
|
|
from accounts.models import User
|
|
from functions.form_check import translit_with_separator
|
|
import datetime
|
|
|
|
import MySQLdb
|
|
from MySQLdb.cursors import DictCursor
|
|
|
|
def convert_to_int(st):
|
|
if not st:
|
|
return None
|
|
deduct = ('-','(',')','.',' ')
|
|
for elem in deduct:
|
|
st = st.replace(elem, '')
|
|
if st.isdigit():
|
|
return int(st)
|
|
else:
|
|
return None
|
|
|
|
class Command(BaseCommand):
|
|
def handle(self, *args, **options):
|
|
db = MySQLdb.connect(host="localhost",
|
|
user="root",
|
|
passwd="qazedc",
|
|
db="expomap_ru",
|
|
charset='utf8',
|
|
cursorclass=DictCursor)
|
|
|
|
cursor = db.cursor()
|
|
sql = "select * from customers_company"
|
|
cursor.execute(sql)
|
|
|
|
res = cursor.fetchall()
|
|
|
|
|
|
for c in res:
|
|
|
|
phone = convert_to_int(c.get('phone'))
|
|
fax = convert_to_int(c.get('fax'))
|
|
url = c['url']
|
|
if not url:
|
|
url = translit_with_separator(c.get('title'))
|
|
|
|
|
|
company = Company(id=c['company_id'], url=url, phone=phone, fax=fax,
|
|
email=c.get('email'), web_page=c.get('website'), twitter=c.get('twitter', ''))
|
|
|
|
company.translate('ru')
|
|
company.name = c.get('title')
|
|
company.specialization = c.get('specialize')
|
|
company.description = c.get('about')
|
|
company.address_inf = c.get('adress')
|
|
user = User.objects.safe_get(id=user_id)
|
|
company.creator = user
|
|
print('not_saved: %s'%c['title'])
|
|
company.save()
|
|
user_id = c['customers_id']
|
|
print('saved: %s'%str(company))
|
|
|
|
if user:
|
|
user.company = company
|
|
if not user.last_login:
|
|
now = datetime.datetime.now()
|
|
user.last_login = now
|
|
|
|
user.save()
|
|
|
|
theme = None
|
|
theme_id = c.get('otrasly')
|
|
if theme_id:
|
|
try:
|
|
theme = Theme.objects.get(id=theme_id)
|
|
except Theme.DoesNotExist:
|
|
continue
|
|
company.theme.add(theme)
|
|
|
|
if not theme:
|
|
continue
|
|
|
|
tags = c.get('tags')
|
|
if tags:
|
|
tags = tags.split(',')
|
|
if tags:
|
|
for tag_id in tags:
|
|
try:
|
|
tag = Tag.objects.get(id=tag_id)
|
|
except Tag.DoesNotExist:
|
|
continue
|
|
if tag.theme == theme:
|
|
company.tag.add(tag)
|
|
else:
|
|
continue
|
|
|
|
#print(str(type(res[0]['phone'])))
|
|
print('success') |