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.
88 lines
2.3 KiB
88 lines
2.3 KiB
# coding=utf-8
|
|
import os
|
|
import django
|
|
import sys
|
|
import simplejson as json
|
|
|
|
|
|
|
|
sys.path.append("/var/www/projects/lms/")
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
|
|
django.setup()
|
|
from __migrate.post_fixtures import show_progress
|
|
from storage.models import Storage
|
|
from access.models import User
|
|
from management.models import News, Comment, Feedback
|
|
|
|
_fixture = json.load(open('fixtures/management.json'))
|
|
user_pk = 1
|
|
findex = []
|
|
storage = []
|
|
crimg = []
|
|
|
|
|
|
def new_index(model, key, obj):
|
|
if str(key) in pk_map[model]:
|
|
return obj.objects.get(id=pk_map[model][str(key)])
|
|
return None
|
|
|
|
|
|
# Пример записи маршрута
|
|
pk_map = json.load(open('pk_maps.json'))
|
|
if 'management.news' not in pk_map.keys():
|
|
pk_map['management.news'] = {}
|
|
|
|
if 'management.comment' not in pk_map.keys():
|
|
pk_map['management.comment'] = {}
|
|
|
|
if 'management.feedback' not in pk_map.keys():
|
|
pk_map['management.feedback'] = {}
|
|
|
|
for i in _fixture:
|
|
if i['model'] == 'management.news':
|
|
findex.append(i)
|
|
elif i['model'] == 'management.comment':
|
|
storage.append(i)
|
|
elif i['model'] == 'management.feedback':
|
|
crimg.append(i)
|
|
|
|
print u'\nComments'
|
|
_now = 0
|
|
big_len = len(storage)
|
|
show_progress(big_len, _now)
|
|
|
|
for i in storage:
|
|
s = Comment.objects.create(
|
|
closed=i['fields']['closed'],
|
|
parent_id=i['fields']['parent_id'],
|
|
owner=new_index('access.user', i['fields']['owner'], User),
|
|
text=i['fields']['text'],
|
|
date=i['fields']['date'],
|
|
send=i['fields']['send']
|
|
)
|
|
for key in i['fields']['files']:
|
|
s.files.add(new_index('storage.storage', key, Storage))
|
|
_now += 1
|
|
show_progress(big_len, _now)
|
|
pk_map['management.comment'][str(i['pk'])] = str(s.id)
|
|
|
|
print u'\nFeedBack'
|
|
_now = 0
|
|
big_len = len(crimg)
|
|
show_progress(big_len, _now)
|
|
|
|
for i in crimg:
|
|
c = Feedback.objects.create(
|
|
closed=i['fields']['closed'],
|
|
name=i['fields']['name'],
|
|
email=i['fields']['email'],
|
|
phone=i['fields']['phone'],
|
|
text=i['fields']['text'],
|
|
date=i['fields']['date'],
|
|
send=i['fields']['send']
|
|
)
|
|
_now += 1
|
|
show_progress(big_len, _now)
|
|
pk_map['management.feedback'][str(i['pk'])] = str(c.id)
|
|
|
|
json.dump(pk_map, open('pk_maps.json', 'w'))
|
|
|