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.
 
 
 
 
 
 

173 lines
9.5 KiB

# coding=utf-8
import os
import datetime
import django
import sys
sys.path.append("/var/www/projects/lms/")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
django.setup()
from courses.models import Course, CourseTheme
from django.core.mail import EmailMessage
from access.models import User
from lms.settings import DEFAULT_FROM_EMAIL
from lms.tools import random_string
from finance.models import Price, Bill
from journals.models import TeacherJ, check_journal, set_opened, CourseThemeJ
sourse = open('users_base.txt').readlines()
seller = User.objects.get(id=2)
_exc = [
'copymi@gmail.com',
'input_chet@rambler.ru',
'smirnovm84@gmail.com',
'appppppple@gmail.com',
'yurinbu@mail.ru',
'zoom-zoom555@mail.ru',
'ulitinigor@yandex.ru',
'kochevnik01@mail.ru',
'adrianobuon@mail.ru',
'allanoy@yandex.ru'
]
_map = {
'# Java': {'obj': Course.objects.get(id=2), 'id': 2, 'user_map': {}, 'teacher': User.objects.get(id=473),
'service': Price.objects.get(id=11)},
'# iOS': {'obj': Course.objects.get(id=3), 'id': 3, 'user_map': {}, 'teacher': User.objects.get(id=17),
'service': Price.objects.get(id=9)},
'# Web': {'obj': Course.objects.get(id=1), 'id': 1, 'user_map': {}, 'teacher': User.objects.get(id=705),
'service': Price.objects.get(id=7)},
'# Excel': {'obj': Course.objects.get(id=4), 'id': 4, 'user_map': {}, 'teacher': User.objects.get(id=22),
'service': Price.objects.get(id=10)}
}
# user_map = {'email', 'fname', 'oname', 'name', 'cur_theme'}
cur_course = None
cur_theme = None
for i in sourse:
l = i.strip()
if l:
if l[0] == '#':
if l in _map:
cur_course = _map[l]
else:
cur_theme = CourseTheme.objects.get(id=l[1:])
else:
_tmp = l.split(';')
_user = _tmp[1].split(' ')
_len = len(_user)
cur_course['user_map'][_tmp[0]] = {
'name': _user[0] if 0 < _len else '',
'fname': _user[1] if 1 < _len else '',
'oname': _user[2] if 2 < _len else '',
'cur_theme': cur_theme,
'teacher': User.objects.get(id=535) if _tmp[0] in _exc else cur_course['teacher']
}
# Создание пользователей
for key, value in _map.items():
print key
cur_course = value['obj']
for user, m in value['user_map'].items():
# Попробовать создать пользователя
_passw = None
_user, c = User.objects.get_or_create(email=user.lower())
if c:
# Если его нет - присвоить пароль и сделать активным
# Присвоить имена
_passw = random_string(length=6).upper()
_user.set_password(_passw)
_user.is_active = True
_user.reg_status = '4'
_user.fname = m['fname']
_user.name = m['name']
_user.oname = m['oname']
_user.save()
# Добавить оплату по требуему курсу
bill, bc = Bill.objects.get_or_create(finish_date=datetime.datetime.now(), user=_user, status='F',
service=value['service'], manager=seller)
# Создать или получить журнал
print _user.id
try:
journal, cj = TeacherJ.objects.get_or_create(student=_user, course=cur_course)
except TeacherJ.MultipleObjectsReturned:
journal = TeacherJ.objects.filter(student=_user, course=cur_course)
journal.last().delete()
journal, cj = TeacherJ.objects.get_or_create(student=_user, course=cur_course)
if cj:
journal.teacher = m['teacher']
journal.save()
# Проверить журнал
check_journal(journal)
# Получить последнюю пройденную тему, если она старше задаваемой - ничего не делать
last_theme = None
for _theme in CourseThemeJ.objects.filter(parent=journal).order_by('material__sort'):
if _theme.get_status_flag() not in 'N':
last_theme = _theme
c3 = False
if last_theme and last_theme.material.sort > 1:
if last_theme.material.sort <= m['cur_theme'].sort:
# Или насильно открыть журнал по заданой теме
set_opened(journal,
CourseThemeJ.objects.get(material=m['cur_theme'], parent=journal).actual_lesson.token)
c3 = True
else:
set_opened(journal, CourseThemeJ.objects.get(material=m['cur_theme'], parent=journal).actual_lesson.token)
c3 = True
if c3:
journal.teacher = m['teacher']
journal.save()
# Если пользователь был создан - отправить одно письмо, если нет, другое
if c:
text = u'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' \
u'<html>' \
u'<head>' \
u'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' \
u'<title></title>' \
u'</head>' \
u'<body>' \
u'<table style="background: #00bdff;' \
u'padding: 10px;' \
u'margin: 10px;' \
u'border: 200px solid #00bdff;' \
u'color: #fff;' \
u'width: 400px;">' \
u'<tr><td><img src="http://lms.ru/static/img/na-novuu-platformu.gif"></td></tr>' \
u'<tr><td><br><br>Добрый день!<br>' \
u'Рады сообщить, что нами была разработанна собственная площадка для обучения.<br><br>' \
u'Сейчас мы осуществяем перевод вашего курса.<br><br>' \
u'Ваш доступ:' \
u'<h1>Ссылка на портал: http://lms.ru</h1>' \
u'<h1>Логин: {0}</h1>' \
u'<h1>Пароль: {1}</h1><br>' \
u'Ваш пароль и другую информацию вы сможете поменять их зайдя на платформе в свой профиль.<br><br>' \
u'Инструкция по работе:<br>' \
u'• На главной странице платформы у Вас отображаются все размещенные на ней курсы.<br>' \
u'• Выбитете Ваш курс и нажминте кнопку приступить. <br>' \
u'• Вы попадете на страницу с курсом, у Вас будет автоматически открыт доступ ко всем урокам которые Вы уже успели пройти.<br>' \
u'• К кажой открытой для Вас темы есть кнопка «Открыть лекцию»<br>' \
u'Перейдя по ней, Вы увидите размещенные видео к урокам.<br>' \
u'Для того что бы открылась страницв с домашним занием, отмемтьте урок просмотренным.<br>' \
u'• Во вкладке с домашним заданиям находяться описания работы, файлы для выполнения.<br>' \
u'Ниже на этой странице находиться форма обратной связи через которую можно общаться с преподавателем и направлять задание на проверку.<br>' \
u'• После принятия рабты, селедующий урок открывается автоматически.<br>' \
u'• Оповещение о новых комментариях преподавателя к домашним заданиям так же будут приходить на указанный e-mail.<br>' \
u'• ВАЖНО. Если вы использовали на старой платформе несколько электронных адресов, Пришлите нам на support@lms.ru не используемый email.<br>' \
u'По всем вопросам, связанным с перездом пишите на почту support@lms.ru</td></tr>' \
u'<tr><td style="padding-bottom: 20px;"><br><Br>С уважением,<Br>Точка кода</td></tr>' \
u'<tr><td style="padding-bottom: 20px;text-align:right;"><img src="http://lms.ru/static/img/logowhite.png"></td></tr>' \
u'</table>' \
u'</body>' \
u'</html>'.format(_user.email, _passw)
msg = EmailMessage('Добро пожаловать на новую платформу',
text,
u'ТОЧКА КОДА <{0}>'.format(DEFAULT_FROM_EMAIL), [_user.email])
msg.content_subtype = "html" # Main content is now text/html
msg.send()