commit
ce1f62e10c
1121 changed files with 146932 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||||||
|
|
||||||
|
|
||||||
|
# use glob syntax. |
||||||
|
syntax: glob |
||||||
|
|
||||||
|
docs/_build |
||||||
|
.idea |
||||||
|
.DS_Store |
||||||
|
.project |
||||||
|
.pydevproject |
||||||
|
*.pyc |
||||||
|
.settings |
||||||
|
*.un~ |
||||||
|
*~ django |
||||||
|
build |
||||||
|
*.swp |
||||||
|
.\#* |
||||||
|
\#* |
||||||
|
|
||||||
|
# archive files |
||||||
|
*.zip |
||||||
|
*.tar.gz |
||||||
|
*.rar |
||||||
|
|
||||||
|
# picture files |
||||||
|
*.jpg |
||||||
|
*.jpeg |
||||||
|
*.gif |
||||||
|
*.JPG |
||||||
|
*.png |
||||||
|
*.bmp |
||||||
|
|
||||||
|
# video files |
||||||
|
*.mp4 |
||||||
|
|
||||||
|
# audio files |
||||||
|
*.mp3 |
||||||
|
|
||||||
|
__pycache__ |
||||||
|
|
||||||
@ -0,0 +1,37 @@ |
|||||||
|
# This file is a template, and might need editing before it works on your project. |
||||||
|
# Official docker image. |
||||||
|
#image: docker:latest |
||||||
|
#services: |
||||||
|
# - docker:dind |
||||||
|
variables: |
||||||
|
CHANNEL: "skillbox" |
||||||
|
SERVER_URL: "lms.test.spicycms.com" |
||||||
|
DOMAIN: "$CI_BUILD_REF_NAME.$SERVER_URL" |
||||||
|
SLACK_MSG: "Check new website <http://$DOMAIN>" |
||||||
|
#SLACK_PAYLOAD: 'payload={\"channel\":\"#'${CHANNEL}'\",\"username\":\"'${SERVER_URL}'\",\"text\":\"'${SLACK_MSG}'\",\"icon_emoji\":\":ghost:\"}' |
||||||
|
SLACK_URL: "https://hooks.slack.com/services/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" |
||||||
|
types: |
||||||
|
- build |
||||||
|
- test |
||||||
|
build_app: |
||||||
|
type: build |
||||||
|
script: |
||||||
|
- docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY |
||||||
|
- docker build --no-cache --rm --pull -t "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME" --build-arg SSH_PRIVATE_KEY="$SSH_PRIVATE_KEY" --build-arg SPICYCODE_LOGIN="$SPICYCODE_LOGIN" --build-arg SPICYCODE_PASS="$SPICYCODE_PASS" . |
||||||
|
#- docker run --rm --add-host dockerhost:`/sbin/ip route|awk '/default/ { print $3}'` "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME" python manage.py test |
||||||
|
- docker push "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME" |
||||||
|
test_app: |
||||||
|
type: test |
||||||
|
script: |
||||||
|
#- docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY |
||||||
|
#- docker pull "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME" |
||||||
|
- if [[ $(docker ps -a) == *$DOMAIN* ]] ; then docker stop $DOMAIN ; fi |
||||||
|
- if [[ $(docker ps -a) == *$DOMAIN* ]] ; then docker rm $DOMAIN; fi |
||||||
|
- "SLACK_PAYLOAD='payload={\"channel\":\"#'${CHANNEL}'\",\"username\":\"'${SERVER_URL}'\",\"text\":\"'${SLACK_MSG}'\",\"icon_emoji\":\":ghost:\"}'" |
||||||
|
- docker run -d --expose=80 -e VIRTUAL_HOST=$DOMAIN --name=$DOMAIN -e DB_NAME=$DB_NAME -e PG_PORT_5432_TCP_ADDR=$DB_HOST -e PG_PORT_5432_TCP_PORT=$DB_PORT -e PG_ENV_POSTGRES_USER=$DB_TEST_USER -e PG_ENV_POSTGRES_PASSWORD=$DB_TEST_PASS "$CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME" |
||||||
|
- curl -I $DOMAIN 2>/dev/null | head -n 1 | cut -d$' ' -f2 |
||||||
|
- echo ${SLACK_PAYLOAD} |
||||||
|
- curl -X POST -d ${SLACK_PAYLOAD} $SLACK_URL |
||||||
|
dependencies: |
||||||
|
- build_app |
||||||
|
|
||||||
@ -0,0 +1,18 @@ |
|||||||
|
orlova@mokselle.ru |
||||||
|
arhipov@mokselle.com |
||||||
|
robert@mokselle.ru |
||||||
|
nemtsev@mokselle.ru |
||||||
|
grebennikova@mokselle.com |
||||||
|
a.rybalov@mokselle.ru |
||||||
|
isaev@mokselle.ru |
||||||
|
kravchenko@mokselle.ru |
||||||
|
volosnikov@mokselle.com |
||||||
|
korneva@mokselle.com |
||||||
|
ivanova@mokselle.ru |
||||||
|
shilin@mokselle.com |
||||||
|
grishchenko@mokselle.ru |
||||||
|
iskusnov@mokselle.ru |
||||||
|
dolya@mokselle.com |
||||||
|
dolia@mokselle.ru |
||||||
|
vorobjova@mokselle.com |
||||||
|
plavko@mokselle.ru |
||||||
@ -0,0 +1,39 @@ |
|||||||
|
FROM python:3.4.5 |
||||||
|
ENV PYTHONUNBUFFERED 1 |
||||||
|
|
||||||
|
RUN mkdir /code |
||||||
|
WORKDIR /code |
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y supervisor \ |
||||||
|
cron |
||||||
|
|
||||||
|
#RUN pip install mercurial |
||||||
|
#RUN pip install git |
||||||
|
RUN pip install uwsgi |
||||||
|
#RUN apt-get update && apt-get install openssh-client |
||||||
|
|
||||||
|
ARG SSH_PRIVATE_KEY |
||||||
|
ARG SPICYCODE_LOGIN |
||||||
|
ARG SPICYCODE_PASS |
||||||
|
RUN echo '[auth]\nspicy.prefix = code.spicycms.com\nspicy.username = '$SPICYCODE_LOGIN'\nspicy.password = '$SPICYCODE_PASS'\nspicy.schemes = https' > ~/.hgrc |
||||||
|
|
||||||
|
RUN mkdir -p ~/.ssh |
||||||
|
RUN mkdir -p /code/static/img/avs |
||||||
|
#RUN eval `ssh-agent -s` > /dev/null | echo "$SSH_KEY" | ssh-add - |
||||||
|
RUN echo "$SSH_PRIVATE_KEY" >> /root/.ssh/id_rsa |
||||||
|
RUN echo "Host *\n\tStrictHostKeyChecking no\nIdentityFile /root/.ssh/id_rsa" >> /root/.ssh/config |
||||||
|
RUN chmod 600 -R /root/.ssh |
||||||
|
|
||||||
|
#ADD ./requirements.txt /code/requirements.txt |
||||||
|
#RUN pip install -r requirements.txt |
||||||
|
|
||||||
|
RUN rm /root/.ssh/id_rsa |
||||||
|
|
||||||
|
ADD . /code |
||||||
|
|
||||||
|
run ln -s /code/supervisor-app.conf /etc/supervisor/conf.d/ |
||||||
|
RUN pip install -r requirements.txt |
||||||
|
#RUN python manage.py collectstatic --noinput |
||||||
|
|
||||||
|
#CMD ["/code/docker-entrypoint.sh"] |
||||||
|
CMD ["supervisord", "-n"] |
||||||
@ -0,0 +1,9 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
apps = ['access', 'courses', 'finance', 'management', 'storage'] |
||||||
|
|
||||||
|
for app in apps: |
||||||
|
os.system('python manage.py dumpdata {0} -o fixtures/{0}.json'.format(app)) |
||||||
|
|
||||||
|
print u'Загружаю медиа' |
||||||
|
os.system('tar czf media.tar.gz media/') |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import json |
||||||
|
|
||||||
|
print 'Вытаскиваю материалы' |
||||||
|
_fixture = json.load(open('fixtures/courses.json')) |
||||||
|
|
||||||
|
loader = ('courses.course') |
||||||
|
w = open('fixtures/courses.json', 'w') |
||||||
|
for i in _fixture: |
||||||
|
if i['model'] in loader.keys(): |
||||||
|
i['model'] = loader[i['model']] |
||||||
|
|
||||||
|
json.dump(_fixture, w) |
||||||
|
w.close() |
||||||
|
print 'Закончил вытаскивание' |
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
|||||||
|
[] |
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,105 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
|
||||||
|
|
||||||
|
def set_hm_success(obj): |
||||||
|
# Получить статус домашку в success |
||||||
|
if obj['fields']['status'] == 'F': |
||||||
|
return True |
||||||
|
else: |
||||||
|
return False |
||||||
|
|
||||||
|
|
||||||
|
def create_try(obj): |
||||||
|
# Создать попытку со всеми комментариями и результатом |
||||||
|
global HT |
||||||
|
HT += 1 |
||||||
|
if obj["fields"]["teacher"]: |
||||||
|
_journal_result.append({"model": "journals.homeworktry", |
||||||
|
"pk": HT, "fields": {"parent": obj['pk'], "student": obj['fields']['student'], |
||||||
|
"teacher": obj['fields']['teacher'], |
||||||
|
"material": obj['fields']['homework'], |
||||||
|
"date": obj['fields']['date'], "f_date": obj['fields']['f_date'], |
||||||
|
"comments": obj['fields']['comments'], |
||||||
|
"success": set_hm_success(obj), |
||||||
|
"expired": False}}) |
||||||
|
|
||||||
|
print 'Создание карты курса' |
||||||
|
# id: {'themes': {}, 'exam': 'id экзамена'} |
||||||
|
# 'themes': {'id темы': {'lessons': [список id уроков], 'homework': id дз} |
||||||
|
_courses_map = {} |
||||||
|
for i in _fixture: |
||||||
|
if i['model'] == 'courses.course': |
||||||
|
if i['pk'] not in _courses_map.keys(): |
||||||
|
# Добавить курс на карту |
||||||
|
_courses_map[i['pk']] = {'themes': {}, 'exam': {}} |
||||||
|
|
||||||
|
elif i['model'] == 'courses.coursetheme': |
||||||
|
# Добавить тему в курс |
||||||
|
if i['pk'] not in _courses_map[i['fields']['course']]['themes'].keys(): |
||||||
|
_courses_map[i['fields']['course']]['themes'][i['pk']] = {'lessons': set({}), 'homework': ''} |
||||||
|
|
||||||
|
elif i['model'] == 'courses.exam': |
||||||
|
# Присвоить курсу ID экзамена |
||||||
|
_courses_map[i['fields']['course']]['exam'] = i['pk'] |
||||||
|
|
||||||
|
elif i['model'] == 'courses.homework': |
||||||
|
# Добавить домашнее задание в тему |
||||||
|
_courses_map[i['fields']['course']]['themes'][i['fields']['theme']]['homework'] = i['pk'] |
||||||
|
|
||||||
|
elif i['model'] == 'courses.lesson': |
||||||
|
_courses_map[i['fields']['course']]['themes'][i['fields']['theme']]['lessons'].add(i['pk']) |
||||||
|
|
||||||
|
# Вторая обработка |
||||||
|
print 'Постобработка' |
||||||
|
for key, value in _theme_counts.items(): |
||||||
|
value['fix'] = int(value['fix']) + 1 |
||||||
|
value['last'] = value['fix'] |
||||||
|
# +1 - готовый ID для новой темы |
||||||
|
|
||||||
|
print 'Обход по карте' |
||||||
|
_merge_map = { |
||||||
|
'journals.teacherj': {'exclude': ['lessons', 'homeworks', 'exam', 'f_date'], |
||||||
|
'new': {'progress': 0}, |
||||||
|
'rename': {}, |
||||||
|
'rebuild': {}}, |
||||||
|
'journals.lessonj': {'exclude': ['status'], |
||||||
|
'new': {'success': True, 'parent': None}, |
||||||
|
'rename': {'lesson': 'material'}, |
||||||
|
'rebuild': {}}, |
||||||
|
'journals.homeworkj': {'exclude': ['status', 'comments'], |
||||||
|
'new': {'success': set_hm_success, 'parent': None}, |
||||||
|
'rename': {'homework': 'material'}, |
||||||
|
'rebuild': {'comments': create_try}}, |
||||||
|
'journals.examj': {'exclude': ['status', 'comments'], |
||||||
|
'new': {'success': False, 'parent': None}, |
||||||
|
'rename': {'exam': 'material'}, |
||||||
|
'rebuild': {}}, |
||||||
|
} |
||||||
|
|
||||||
|
# Преобразовать модели объектов |
||||||
|
_journal_result = [] |
||||||
|
for i in _journal: |
||||||
|
if i['model'] in _merge_map.keys(): |
||||||
|
__tmp = {} |
||||||
|
for key, value in _merge_map[i['model']]['rebuild'].items(): |
||||||
|
value(i) |
||||||
|
for key, value in i['fields'].items(): |
||||||
|
# Исключить не используемые поля |
||||||
|
if key not in _merge_map[i['model']]['exclude']: |
||||||
|
if key in _merge_map[i['model']]['rename'].keys(): |
||||||
|
# Переименовать переменные |
||||||
|
__tmp[_merge_map[i['model']]['rename'][key]] = value |
||||||
|
else: |
||||||
|
__tmp[key] = value |
||||||
|
for key, value in _merge_map[i['model']]['new'].items(): |
||||||
|
if type(value) in [str, int, bool] or value is None: |
||||||
|
__tmp[key] = value |
||||||
|
else: |
||||||
|
# Получение не определенного заранее ответа |
||||||
|
__tmp[key] = value(i) |
||||||
|
# Как получить ID журнала темы |
||||||
|
__tmp = {"pk": i['pk'], "model": i['model'], "fields": __tmp} |
||||||
|
_journal_result.append(__tmp) |
||||||
|
else: |
||||||
|
_journal_result.append(i) |
||||||
|
json.dump(_journal_result, open('fixtures/journals.json', 'w')) |
||||||
@ -0,0 +1,63 @@ |
|||||||
|
м# coding=utf-8 |
||||||
|
import os |
||||||
|
|
||||||
|
import django |
||||||
|
|
||||||
|
from post_fixtures import main |
||||||
|
from _utils.clear_db import main as clear_main |
||||||
|
|
||||||
|
print '==== Загружаю DJANGO' |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from storage.models import Storage, CroppedImage |
||||||
|
|
||||||
|
print '==== Загрузил DJANGO' |
||||||
|
# == Загрузка данных |
||||||
|
|
||||||
|
print '==== Обрабатываю модели' |
||||||
|
|
||||||
|
# Загрузка материалов |
||||||
|
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) |
||||||
|
print BASE_DIR |
||||||
|
APPS = ('storage', 'access', 'management', 'courses', 'finance', ) |
||||||
|
#courses_models = ('courses.course', 'courses.coursetheme', 'courses.lesson', 'courses.homework', 'courses.exam') |
||||||
|
#journal_models = ('courses.teacherj', 'courses.lessonj', 'courses.homeworkj', 'courses.examj') |
||||||
|
#finance_models = ("courses.bill", 'courses.price', 'courses.servicerequest') |
||||||
|
|
||||||
|
|
||||||
|
clear_main() |
||||||
|
os.system('python merge_fixtures.py') |
||||||
|
|
||||||
|
# Загрузить фикстуры не изменившихся моделей |
||||||
|
print '==== Заливаю модели' |
||||||
|
for app in APPS: |
||||||
|
print app.upper() |
||||||
|
os.system('python manage.py loaddata fixtures/{0}.json'.format(app)) |
||||||
|
|
||||||
|
print '==== Заливаю MEDIA' |
||||||
|
os.system('tar xfz media.tar.gz') |
||||||
|
print '==== Проверка заливки' |
||||||
|
# Проверить существование файлов из storage |
||||||
|
errors = [] |
||||||
|
for store in Storage.objects.all(): |
||||||
|
# Проверить original, f_format.icon |
||||||
|
obj = (store.original.path if store.original else '', |
||||||
|
store.f_format.icon.path if store.f_format and store.f_format.icon else '') |
||||||
|
for i in obj: |
||||||
|
if i and not os.path.exists(i): |
||||||
|
errors.append(i) |
||||||
|
#print 'Ошибки файлов: {0}'.format(len(errors)) |
||||||
|
|
||||||
|
for store in CroppedImage.objects.all(): |
||||||
|
# croppedimage.big, croppedimage.middle, croppedimage.small |
||||||
|
obj = (store.big.path if store.big else '', |
||||||
|
store.middle.path if store.middle else '', |
||||||
|
store.small.path if store.small else '') |
||||||
|
for i in obj: |
||||||
|
if i and not os.path.exists(i): |
||||||
|
errors.append(i) |
||||||
|
#print 'Ошибки файлов: {0}'.format(len(errors)) |
||||||
|
print 'Ошибки файлов: {0}'.format(len(errors)) |
||||||
|
#print errors |
||||||
|
|
||||||
|
main() |
||||||
@ -0,0 +1,277 @@ |
|||||||
|
# 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 courses.models import Course, CourseTheme, Lesson, Homework, Exam, Skills, SkillJ, Achievements, CourseBuilder |
||||||
|
from management.models import Comment |
||||||
|
from storage.models import Storage |
||||||
|
|
||||||
|
_fixture = json.load(open('fixtures/courses.json')) |
||||||
|
user_pk = 1 |
||||||
|
courses = [] |
||||||
|
lessons = [] |
||||||
|
themes = [] |
||||||
|
homeworks = [] |
||||||
|
exams = [] |
||||||
|
skills = [] |
||||||
|
skillsj = [] |
||||||
|
achs = [] |
||||||
|
|
||||||
|
|
||||||
|
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 'courses.course' not in pk_map.keys(): |
||||||
|
pk_map['courses.course'] = {} |
||||||
|
|
||||||
|
if 'courses.coursetheme' not in pk_map.keys(): |
||||||
|
pk_map['courses.coursetheme'] = {} |
||||||
|
|
||||||
|
if 'courses.lesson' not in pk_map.keys(): |
||||||
|
pk_map['courses.lesson'] = {} |
||||||
|
|
||||||
|
if 'courses.homework' not in pk_map.keys(): |
||||||
|
pk_map['courses.homework'] = {} |
||||||
|
|
||||||
|
if 'courses.exam' not in pk_map.keys(): |
||||||
|
pk_map['courses.exam'] = {} |
||||||
|
|
||||||
|
if 'courses.skills' not in pk_map.keys(): |
||||||
|
pk_map['courses.skills'] = {} |
||||||
|
|
||||||
|
if 'courses.skillj' not in pk_map.keys(): |
||||||
|
pk_map['courses.skillj'] = {} |
||||||
|
|
||||||
|
if 'courses.achievements' not in pk_map.keys(): |
||||||
|
pk_map['courses.achievements'] = {} |
||||||
|
|
||||||
|
for i in _fixture: |
||||||
|
if i['model'] == 'courses.course': |
||||||
|
if i not in courses: |
||||||
|
courses.append(i) |
||||||
|
|
||||||
|
elif i['model'] == 'courses.coursetheme': |
||||||
|
if i not in themes: |
||||||
|
themes.append(i) |
||||||
|
|
||||||
|
elif i['model'] == 'courses.lesson': |
||||||
|
if i not in lessons: |
||||||
|
lessons.append(i) |
||||||
|
|
||||||
|
elif i['model'] == 'courses.homework': |
||||||
|
if i not in homeworks: |
||||||
|
homeworks.append(i) |
||||||
|
|
||||||
|
elif i['model'] == 'courses.exam': |
||||||
|
if i not in exams: |
||||||
|
exams.append(i) |
||||||
|
|
||||||
|
elif i['model'] == 'courses.skills': |
||||||
|
if i not in skillsj: |
||||||
|
skills.append(i) |
||||||
|
|
||||||
|
elif i['model'] == 'courses.skillj': |
||||||
|
if i not in skillsj: |
||||||
|
skillsj.append(i) |
||||||
|
|
||||||
|
elif i['model'] == 'courses.achievements': |
||||||
|
if i not in achs: |
||||||
|
achs.append(i) |
||||||
|
|
||||||
|
print '\nCourse' |
||||||
|
_now = 0 |
||||||
|
big_len = len(courses) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in courses: |
||||||
|
c = Course.objects.create( |
||||||
|
level=i['fields']['level'], |
||||||
|
public=True, |
||||||
|
title=i['fields']['title'], |
||||||
|
description=i['fields']['description'], |
||||||
|
image=i['fields']['image'], |
||||||
|
big_image=i['fields']['big_image'], |
||||||
|
page=i['fields']['page'], |
||||||
|
preview=i['fields']['preview'], |
||||||
|
sort=i['fields']['sort'], |
||||||
|
use_fail=i['fields']['use_fail'], |
||||||
|
basic_len=i['fields']['basic_len'], |
||||||
|
addition_len=i['fields']['addition_len'], |
||||||
|
min_price=i['fields']['min_price'], |
||||||
|
buy_icon=i['fields']['buy_icon'] |
||||||
|
) |
||||||
|
|
||||||
|
pk_map['courses.course'][str(i['pk'])] = str(c.id) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
print u'\nCourseTheme' |
||||||
|
_now = 0 |
||||||
|
big_len = len(themes) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in themes: |
||||||
|
c = CourseTheme.objects.create( |
||||||
|
price_type='E' if i['fields']['type'] == 'A' else i['fields']['type'], |
||||||
|
_type='E' if i['fields']['type'] == 'A' else i['fields']['type'], |
||||||
|
icon=i['fields']['icon'], |
||||||
|
course=new_index('courses.course', i['fields']['course'], Course), |
||||||
|
sort=i['fields']['sort'], |
||||||
|
title=i['fields']['title'], |
||||||
|
description=i['fields']['description'], |
||||||
|
) |
||||||
|
# print i['fields']['course'] |
||||||
|
# print new_index('courses.course', i['fields']['course'], Course) |
||||||
|
pk_map['courses.coursetheme'][str(i['pk'])] = str(c.id) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
print u'\nLessons' |
||||||
|
_now = 0 |
||||||
|
big_len = len(lessons) |
||||||
|
show_progress(big_len, _now) |
||||||
|
for i in lessons: |
||||||
|
c = Lesson.objects.create( |
||||||
|
free=i['fields']['free'], |
||||||
|
token=i['fields']['token'], |
||||||
|
title=i['fields']['title'], |
||||||
|
sort=i['fields']['sort'], |
||||||
|
course=new_index('courses.course', i['fields']['course'], Course), |
||||||
|
theme=new_index('courses.coursetheme', i['fields']['theme'], CourseTheme), |
||||||
|
description=i['fields']['description'], |
||||||
|
video=i['fields']['video'] |
||||||
|
) |
||||||
|
for key in i['fields']['materials']: |
||||||
|
c.materials.add(new_index('storage.storage', key, Storage)) |
||||||
|
|
||||||
|
for key in i['fields']['comments']: |
||||||
|
# print key |
||||||
|
# print new_index('management.comment', key, Comment) |
||||||
|
c.comments.add(new_index('management.comment', key, Comment)) |
||||||
|
|
||||||
|
pk_map['courses.lesson'][str(i['pk'])] = str(c.id) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
print u'\nHomework' |
||||||
|
_now = 0 |
||||||
|
big_len = len(homeworks) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in homeworks: |
||||||
|
c = Homework.objects.create( |
||||||
|
token=i['fields']['token'], |
||||||
|
course=new_index('courses.course', i['fields']['course'], Course), |
||||||
|
theme=new_index('courses.coursetheme', i['fields']['theme'], CourseTheme), |
||||||
|
description=i['fields']['description'], |
||||||
|
sort=1 |
||||||
|
) |
||||||
|
for key in i['fields']['materials']: |
||||||
|
c.materials.add(new_index('storage.storage', key, Storage)) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['courses.homework'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
print u'\nExams' |
||||||
|
_now = 0 |
||||||
|
big_len = len(exams) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in exams: |
||||||
|
tm = CourseTheme.objects.create( |
||||||
|
course=new_index('courses.course', i['fields']['course'], Course), |
||||||
|
_type='Ex' |
||||||
|
) |
||||||
|
pk_map['courses.coursetheme'][str(tm.id)] = str(tm.id) |
||||||
|
c = Exam.objects.create( |
||||||
|
token=i['fields']['token'], |
||||||
|
sort=1, |
||||||
|
course=new_index('courses.course', i['fields']['course'], Course), |
||||||
|
theme=tm, |
||||||
|
icon=new_index('storage.storage', i['fields']['diploma'], Storage), |
||||||
|
title=i['fields']['title'], |
||||||
|
description=i['fields']['description'], |
||||||
|
diploma=new_index('storage.storage', i['fields']['diploma'], Storage) |
||||||
|
) |
||||||
|
for key in i['fields']['materials']: |
||||||
|
c.materials.add(new_index('storage.storage', key, Storage)) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['courses.exam'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
print u'\nПереформировать порядок' |
||||||
|
for course in Course.objects.all(): |
||||||
|
_count = 1 |
||||||
|
#print course |
||||||
|
for _type in ['B', 'M', 'Ex', 'E', 'P']: |
||||||
|
for theme in CourseTheme.objects.filter(course=course, _type=_type): |
||||||
|
theme.sort = _count |
||||||
|
_count += 1 |
||||||
|
theme.save() |
||||||
|
#print _count |
||||||
|
|
||||||
|
print u'\nКарты курсов' |
||||||
|
for course in Course.objects.all(): |
||||||
|
CourseBuilder(course).main() |
||||||
|
|
||||||
|
print u'\nSkills' |
||||||
|
_now = 0 |
||||||
|
big_len = len(skills) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in skills: |
||||||
|
c, c2 = Skills.objects.get_or_create( |
||||||
|
title=i['fields']['title'], |
||||||
|
color=i['fields']['color'] |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['courses.skills'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
print u'\nSkillsJ' |
||||||
|
_now = 0 |
||||||
|
big_len = len(skillsj) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in skillsj: |
||||||
|
c, c2 = SkillJ.objects.get_or_create( |
||||||
|
skill=new_index('courses.skills', i['fields']['skill'], Skills), |
||||||
|
lesson=new_index('courses.lesson', i['fields']['lesson'], Lesson), |
||||||
|
size=i['fields']['size'] |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['courses.skillj'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
print u'\nAchivements' |
||||||
|
_now = 0 |
||||||
|
big_len = len(achs) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in achs: |
||||||
|
c, c2 = Achievements.objects.get_or_create( |
||||||
|
tech_name=i['fields']['tech_name'], |
||||||
|
icon=i['fields']['icon'], |
||||||
|
title=i['fields']['title'], |
||||||
|
image=i['fields']['image'], |
||||||
|
background=i['fields']['background'], |
||||||
|
border=i['fields']['border'], |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['courses.achievements'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
for course in Course.objects.all(): |
||||||
|
course.build_map() |
||||||
|
json.dump(pk_map, open('pk_maps.json', 'w')) |
||||||
@ -0,0 +1,110 @@ |
|||||||
|
# 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 courses.models import Course |
||||||
|
from finance.models import Price, Bill, ServiceRequest |
||||||
|
from access.models import User |
||||||
|
|
||||||
|
_fixture = json.load(open('fixtures/courses.json')) |
||||||
|
user_pk = 1 |
||||||
|
prices = [] |
||||||
|
bills = [] |
||||||
|
requests = [] |
||||||
|
|
||||||
|
|
||||||
|
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 'finance.price' not in pk_map.keys(): |
||||||
|
pk_map['finance.price'] = {} |
||||||
|
|
||||||
|
if 'finance.bill' not in pk_map.keys(): |
||||||
|
pk_map['finance.bill'] = {} |
||||||
|
|
||||||
|
if 'finance.servicerequest' not in pk_map.keys(): |
||||||
|
pk_map['finance.servicerequest'] = {} |
||||||
|
|
||||||
|
for i in _fixture: |
||||||
|
if i['model'] == 'courses.price': |
||||||
|
prices.append(i) |
||||||
|
elif i['model'] == 'courses.bill': |
||||||
|
bills.append(i) |
||||||
|
elif i['model'] == 'courses.servicerequest': |
||||||
|
requests.append(i) |
||||||
|
|
||||||
|
print u'\nPrice' |
||||||
|
_now = 0 |
||||||
|
big_len = len(prices) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in prices: |
||||||
|
f, c = Price.objects.get_or_create( |
||||||
|
m_type=i['fields']['m_type'], |
||||||
|
public=i['fields']['public'], |
||||||
|
title=i['fields']['title'], |
||||||
|
cost=i['fields']['cost'], |
||||||
|
course=new_index('courses.course', i['fields']['course'], Course), |
||||||
|
description=i['fields']['description'] |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['finance.price'][str(i['pk'])] = str(f.id) |
||||||
|
|
||||||
|
print u'\nBill' |
||||||
|
_now = 0 |
||||||
|
big_len = len(bills) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in bills: |
||||||
|
s = Bill.objects.create( |
||||||
|
status=i['fields']['status'], |
||||||
|
user=new_index('access.user', i['fields']['user'], User), |
||||||
|
manager=new_index('access.user', i['fields']['manager'], User), |
||||||
|
service=new_index('finance.price', i['fields']['service'], Price), |
||||||
|
key=i['fields']['key'], |
||||||
|
out_id=i['fields']['out_id'], |
||||||
|
date=i['fields']['date'], |
||||||
|
status_changed=i['fields']['status_changed'], |
||||||
|
comment=i['fields']['comment'], |
||||||
|
finish_date=i['fields']['finish_date'], |
||||||
|
salt=i['fields']['salt'], |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['finance.bill'][str(i['pk'])] = str(s.id) |
||||||
|
|
||||||
|
print u'\nServiceRequest' |
||||||
|
_now = 0 |
||||||
|
big_len = len(requests) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in requests: |
||||||
|
c = ServiceRequest.objects.create( |
||||||
|
status=i['fields']['status'], |
||||||
|
student=new_index('access.user', i['fields']['student'], User), |
||||||
|
course=new_index('courses.course', i['fields']['course'], Course), |
||||||
|
manager=new_index('access.user', i['fields']['manager'], User), |
||||||
|
cancel_description=i['fields']['cancel_description'], |
||||||
|
charge=i['fields']['charge'], |
||||||
|
date=i['fields']['date'], |
||||||
|
f_date=i['fields']['f_date'], |
||||||
|
send=i['fields']['send'], |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['finance.servicerequest'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
json.dump(pk_map, open('pk_maps.json', 'w')) |
||||||
@ -0,0 +1,111 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import json |
||||||
|
|
||||||
|
HT = 0 |
||||||
|
|
||||||
|
|
||||||
|
print 'Приступил к МЕРДЖУ' |
||||||
|
|
||||||
|
loader = { |
||||||
|
'courses.teacherj': 'journals.teacherj', |
||||||
|
'courses.lessonj': 'journals.lessonj', |
||||||
|
'courses.homeworkj': 'journals.homeworkj', |
||||||
|
'courses.examj': 'journals.examj', |
||||||
|
'courses.bill': 'finance.bill', |
||||||
|
'courses.price': 'finance.price', |
||||||
|
'courses.servicerequest': 'finance.servicerequest', |
||||||
|
'courses.selfbillrequest': 'finance.selfbillrequest', |
||||||
|
'courses.selfbillhistory': 'finance.selfbillhistory', |
||||||
|
'courses.achievementj': 'journals.achievementj' |
||||||
|
} |
||||||
|
|
||||||
|
_journal = [] |
||||||
|
_finance = [] |
||||||
|
_courses = [] |
||||||
|
_theme_count = 0 |
||||||
|
_theme_counts = {} |
||||||
|
M_material = '' |
||||||
|
_fixture = json.load(open('fixtures/courses.json')) |
||||||
|
# Первая обработка |
||||||
|
for i in _fixture: |
||||||
|
if i['model'] in loader.keys(): |
||||||
|
i['model'] = loader[i['model']] |
||||||
|
|
||||||
|
if i['model'] == 'courses.coursetheme': |
||||||
|
# Проверяем существование реестра счетчиков по курсу |
||||||
|
if i['fields']['course'] not in _theme_counts.keys(): |
||||||
|
_theme_counts[i['fields']['course']] = 0 |
||||||
|
|
||||||
|
if int(i['pk']) > _theme_count: |
||||||
|
# Ловим последний ID темы |
||||||
|
_theme_count = int(i['pk']) |
||||||
|
|
||||||
|
if i['fields']['type'] == 'A': |
||||||
|
i['fields']['price_type'] = 'E' |
||||||
|
i['fields']['type'] = 'E' |
||||||
|
# Считаем количество расширеных тем |
||||||
|
else: |
||||||
|
i['fields']['price_type'] = i['fields']['type'] |
||||||
|
|
||||||
|
# Ловим последнюю сортировку базовых тем курса |
||||||
|
if i['fields']['type'] == 'B' and int(i['fields']['sort']) > _theme_counts[i['fields']['course']]: |
||||||
|
_theme_counts[i['fields']['course']] = int(i['fields']['sort']) |
||||||
|
|
||||||
|
if i['fields']['type'] == 'M': |
||||||
|
# Ловим предэкзаменационные материалы |
||||||
|
i['fields']['price_type'] = 'B' |
||||||
|
M_material = i |
||||||
|
M_material['fields']['sort'] = False |
||||||
|
|
||||||
|
if i['model'] == 'courses.homework': |
||||||
|
i['fields']['sort'] = '1' |
||||||
|
|
||||||
|
if i['model'] == 'courses.course': |
||||||
|
i['fields']['public'] = True |
||||||
|
|
||||||
|
if i['model'] == 'courses.exam': |
||||||
|
i['fields']['sort'] = '1' |
||||||
|
|
||||||
|
if 'finance' in i['model']: |
||||||
|
_finance.append(i) |
||||||
|
elif 'courses' in i['model']: |
||||||
|
_courses.append(i) |
||||||
|
|
||||||
|
_theme_counts[M_material['fields']['course']] += 1 |
||||||
|
for i in _fixture: |
||||||
|
if i['model'] == 'courses.exam': |
||||||
|
# Создаю для каждого экзамена экзаменационную тему |
||||||
|
if not M_material['fields']['sort'] and M_material['fields']['course'] == i['fields']['course']: |
||||||
|
M_material['fields']['sort'] = int(_theme_counts[M_material['fields']['course']]) |
||||||
|
_theme_counts[M_material['fields']['course']] += 1 |
||||||
|
_courses.append(M_material) |
||||||
|
_theme_count += 1 # Пересчет количества экзаменов |
||||||
|
_courses.append({"model": "courses.coursetheme", |
||||||
|
"pk": int(_theme_count), # Расчитать ID темы - последняя |
||||||
|
"fields": {"type": "Ex", |
||||||
|
"price_type": "B", |
||||||
|
"icon": "", |
||||||
|
"course": i['fields']['course'], |
||||||
|
"sort": int(_theme_counts[i['fields']['course']]), # Расчитать сортировку |
||||||
|
"title": "Экзаменационная тема", |
||||||
|
"description": ""} |
||||||
|
}) |
||||||
|
i['fields']['theme'] = int(_theme_count) |
||||||
|
|
||||||
|
|
||||||
|
json.dump(_courses, open('fixtures/courses.json', 'w')) |
||||||
|
json.dump(_finance, open('fixtures/finance.json', 'w')) |
||||||
|
|
||||||
|
_fixture = json.load(open('fixtures/management.json')) |
||||||
|
for i in _fixture: |
||||||
|
if i['model'] == 'management.comment': |
||||||
|
i['fields']['saw'] = [] |
||||||
|
tmp = {} |
||||||
|
for key, value in i['fields'].items(): |
||||||
|
# Убрать не нужны поля |
||||||
|
if key != 'public': |
||||||
|
tmp[key] = value |
||||||
|
i['fields'] = tmp |
||||||
|
|
||||||
|
json.dump(_fixture, open('fixtures/management.json', 'w')) |
||||||
|
print 'Закончил МЕРДЖ' |
||||||
@ -0,0 +1,228 @@ |
|||||||
|
# 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 access.models import User |
||||||
|
from courses.models import Exam, Homework, Lesson, Achievements, Course, CourseTheme |
||||||
|
from journals.models import TeacherJ, AchievementJ, LessonJ, HomeworkJ, ExamJ, CourseThemeJ, HomeworkTry, check_journal |
||||||
|
from storage.models import Storage |
||||||
|
from management.models import Comment |
||||||
|
|
||||||
|
_fixture = json.load(open('fixtures/courses.json')) |
||||||
|
|
||||||
|
teachers = [] |
||||||
|
achss = [] |
||||||
|
lessonss = [] |
||||||
|
homeworks = [] |
||||||
|
exams = [] |
||||||
|
|
||||||
|
|
||||||
|
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 'journals.teacherj' not in pk_map.keys(): |
||||||
|
pk_map['journals.teacherj'] = {} |
||||||
|
|
||||||
|
if 'journals.achievementj' not in pk_map.keys(): |
||||||
|
pk_map['journals.achievementj'] = {} |
||||||
|
|
||||||
|
if 'journals.lessonj' not in pk_map.keys(): |
||||||
|
pk_map['journals.lessonj'] = {} |
||||||
|
|
||||||
|
if 'journals.homeworkj' not in pk_map.keys(): |
||||||
|
pk_map['journals.homeworkj'] = {} |
||||||
|
|
||||||
|
if 'journals.examj' not in pk_map.keys(): |
||||||
|
pk_map['journals.examj'] = {} |
||||||
|
|
||||||
|
for i in _fixture: |
||||||
|
if i['model'] == 'courses.teacherj': |
||||||
|
teachers.append(i) |
||||||
|
elif i['model'] == 'courses.achievementj': |
||||||
|
achss.append(i) |
||||||
|
elif i['model'] == 'courses.lessonj': |
||||||
|
lessonss.append(i) |
||||||
|
elif i['model'] == 'courses.homeworkj': |
||||||
|
homeworks.append(i) |
||||||
|
elif i['model'] == 'courses.examj': |
||||||
|
exams.append(i) |
||||||
|
|
||||||
|
|
||||||
|
def achnivs(): |
||||||
|
print u'\nAchievementJ' |
||||||
|
_now = 0 |
||||||
|
big_len = len(achss) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in achss: |
||||||
|
s = AchievementJ.objects.create( |
||||||
|
group=i['fields']['group'], |
||||||
|
title=i['fields']['title'], |
||||||
|
text=i['fields']['text'], |
||||||
|
student=new_index('access.user', i['fields']['student'], User), |
||||||
|
achievement=new_index('courses.achievements', i['fields']['achievement'], Achievements), |
||||||
|
got=i['fields']['got'], |
||||||
|
date=i['fields']['date'] |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['journals.achievementj'][str(i['pk'])] = str(s.id) |
||||||
|
|
||||||
|
|
||||||
|
def tej(): |
||||||
|
print u'\nПереформирование журналов TeacherJ' |
||||||
|
for i in teachers: |
||||||
|
tj, c = TeacherJ.objects.get_or_create(student=new_index('access.user', i['fields']['student'], User), |
||||||
|
course=new_index('courses.course', i['fields']['course'], Course)) |
||||||
|
# print i['fields'] |
||||||
|
if tj.start_date != i['fields']['start_date']: |
||||||
|
tj.start_date = i['fields']['start_date'] |
||||||
|
if tj.teacher != new_index('access.user', i['fields']['teacher'], User): |
||||||
|
tj.teacher = new_index('access.user', i['fields']['teacher'], User) |
||||||
|
# check_journal(tj, tj.student, tj.course) |
||||||
|
tj.save() |
||||||
|
|
||||||
|
check_journal(tj) |
||||||
|
pk_map['journals.teacherj'][str(i['pk'])] = str(tj.id) |
||||||
|
|
||||||
|
print u'\nCreate CourseThemeJ' |
||||||
|
for journal in TeacherJ.objects.all(): |
||||||
|
for theme in CourseTheme.objects.filter(course=journal.course): |
||||||
|
c, c2 = CourseThemeJ.objects.get_or_create(material=theme, student=journal.student) |
||||||
|
if c.parent != journal: |
||||||
|
c.parent = journal |
||||||
|
c.save() |
||||||
|
|
||||||
|
|
||||||
|
def get_point(point, t, f): |
||||||
|
if point: |
||||||
|
return t |
||||||
|
else: |
||||||
|
return f |
||||||
|
|
||||||
|
|
||||||
|
def lj(): |
||||||
|
print u'\nLessonJ' |
||||||
|
_now = 0 |
||||||
|
big_len = len(lessonss) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in lessonss: |
||||||
|
# print i |
||||||
|
c, c2 = LessonJ.objects.get_or_create( |
||||||
|
student=new_index('access.user', i['fields']['student'], User), |
||||||
|
material=new_index('courses.lesson', i['fields']['lesson'], Lesson), |
||||||
|
# parent=CourseThemeJ.objects.get(student=new_index('access.user', i['fields']['student'], User), |
||||||
|
# material=new_index('courses.lesson', i['fields']['lesson'], Lesson).theme) |
||||||
|
) |
||||||
|
c.success = bool(i['fields']['status'] == 'F') |
||||||
|
c.date = get_point(i['fields']['status'] != 'N', i['fields']['date'], None) |
||||||
|
c.f_date = get_point(i['fields']['status'] == 'F', i['fields']['f_date'], None) |
||||||
|
c.save() |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['journals.lessonj'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
|
||||||
|
def create_try(parent, date): |
||||||
|
return HomeworkTry.objects.create( |
||||||
|
parent=parent, |
||||||
|
material=parent.material, |
||||||
|
student=parent.student, |
||||||
|
teacher=parent.teacher, |
||||||
|
date=date |
||||||
|
) |
||||||
|
|
||||||
|
|
||||||
|
def hj(): |
||||||
|
print u'\nHomeworkJ' |
||||||
|
_now = 0 |
||||||
|
big_len = len(homeworks) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in homeworks: |
||||||
|
c, c2 = HomeworkJ.objects.get_or_create( |
||||||
|
student=new_index('access.user', i['fields']['student'], User), |
||||||
|
material=new_index('courses.homework', i['fields']['homework'], Homework) |
||||||
|
# parent=CourseThemeJ.objects.get(student=new_index('access.user', i['fields']['student'], User), |
||||||
|
# material=new_index('courses.homework', i['fields']['homework'], |
||||||
|
# Homework).theme) |
||||||
|
) |
||||||
|
c.date = i['fields']['date'] |
||||||
|
c.f_date = i['fields']['f_date'] |
||||||
|
c.teacher = new_index('access.user', i['fields']['teacher'], User) |
||||||
|
c.success = False |
||||||
|
c.save() |
||||||
|
comments = [new_index('management.comment', comment, Comment) for comment in i['fields']['comments']] |
||||||
|
_try = None |
||||||
|
for comment in comments: |
||||||
|
must_del = False |
||||||
|
if not _try: |
||||||
|
_try = create_try(c, comment.date) |
||||||
|
|
||||||
|
if '<span class="label label-success">Задача принята! </span><br>' in comment.text.encode('utf8'): |
||||||
|
_try.f_date = comment.date |
||||||
|
_try.success = True |
||||||
|
must_del = True |
||||||
|
|
||||||
|
if '<span class="label label-danger">Отправлено на доработку!</span><br>' in comment.text.encode('utf8'): |
||||||
|
_try.f_date = comment.date |
||||||
|
must_del = True |
||||||
|
|
||||||
|
_try.comments.add(comment) |
||||||
|
_try.save() |
||||||
|
|
||||||
|
if must_del: |
||||||
|
_try = None |
||||||
|
must_del = False |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['journals.homeworkj'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
|
||||||
|
def exj(): |
||||||
|
print u'\nExamJ' |
||||||
|
_now = 0 |
||||||
|
big_len = len(exams) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in exams: |
||||||
|
# print i |
||||||
|
c, c2 = ExamJ.objects.get_or_create( |
||||||
|
material=new_index('courses.exam', i['fields']['exam'], Exam), |
||||||
|
student=new_index('access.user', i['fields']['student'], User) |
||||||
|
# parent=CourseThemeJ.objects.get(student=new_index('access.user', i['fields']['student'], User), |
||||||
|
# material___type='Ex', |
||||||
|
# material__course=new_index('courses.exam', i['fields']['exam'], |
||||||
|
# Exam).course) |
||||||
|
) |
||||||
|
c.teacher = new_index('access.user', i['fields']['teacher'], User) |
||||||
|
c.date = i['fields']['date'] |
||||||
|
c.f_date = i['fields']['f_date'] |
||||||
|
c.success = False |
||||||
|
c.diploma = new_index('storage.storage', i['fields']['diploma'], Storage) |
||||||
|
c.save() |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['journals.examj'][str(i['pk'])] = str(c.id) |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
# achnivs() |
||||||
|
lj() |
||||||
|
hj() |
||||||
|
exj() |
||||||
|
tej() |
||||||
|
|
||||||
|
json.dump(pk_map, open('pk_maps.json', 'w')) |
||||||
@ -0,0 +1,88 @@ |
|||||||
|
# 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')) |
||||||
@ -0,0 +1,100 @@ |
|||||||
|
# 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 FormatIndex, Storage, CroppedImage |
||||||
|
|
||||||
|
_fixture = json.load(open('fixtures/storage.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 'storage.formatindex' not in pk_map.keys(): |
||||||
|
pk_map['storage.formatindex'] = {} |
||||||
|
|
||||||
|
if 'storage.storage' not in pk_map.keys(): |
||||||
|
pk_map['storage.storage'] = {} |
||||||
|
|
||||||
|
if 'storage.croppedimage' not in pk_map.keys(): |
||||||
|
pk_map['storage.croppedimage'] = {} |
||||||
|
|
||||||
|
|
||||||
|
for i in _fixture: |
||||||
|
if i['model'] == 'storage.formatindex': |
||||||
|
findex.append(i) |
||||||
|
elif i['model'] == 'storage.storage': |
||||||
|
storage.append(i) |
||||||
|
elif i['model'] == 'storage.croppedimage': |
||||||
|
crimg.append(i) |
||||||
|
|
||||||
|
print u'\nFormatIndex' |
||||||
|
_now = 0 |
||||||
|
big_len = len(findex) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in findex: |
||||||
|
f = FormatIndex.objects.create( |
||||||
|
f_type=i['fields']['f_type'], |
||||||
|
name=i['fields']['name'], |
||||||
|
description=i['fields']['description'], |
||||||
|
icon=i['fields']['icon'], |
||||||
|
icon_class=i['fields']['icon_class'], |
||||||
|
) |
||||||
|
pk_map['storage.formatindex'][str(i['pk'])] = str(f.id) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
print u'\nStorage' |
||||||
|
_now = 0 |
||||||
|
big_len = len(storage) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in storage: |
||||||
|
s = Storage.objects.create( |
||||||
|
loaded=i['fields']['loaded'], |
||||||
|
name=i['fields']['name'], |
||||||
|
key=i['fields']['key'], |
||||||
|
original=i['fields']['original'], |
||||||
|
f_format=new_index('storage.formatindex', i['fields']['f_format'], FormatIndex), |
||||||
|
description=i['fields']['description'], |
||||||
|
date=i['fields']['date'], |
||||||
|
error=i['fields']['error'], |
||||||
|
) |
||||||
|
pk_map['storage.storage'][str(i['pk'])] = str(s.id) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
print u'\nCroppedImg' |
||||||
|
_now = 0 |
||||||
|
big_len = len(crimg) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in crimg: |
||||||
|
c = CroppedImage.objects.create( |
||||||
|
original=new_index('storage.storage', i['fields']['original'], Storage), |
||||||
|
big=i['fields']['big'], |
||||||
|
middle=i['fields']['middle'], |
||||||
|
small=i['fields']['small'], |
||||||
|
cropped=i['fields']['cropped'], |
||||||
|
) |
||||||
|
pk_map['storage.croppedimage'][str(i['pk'])] = str(c.id) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
json.dump(pk_map, open('pk_maps.json', 'w')) |
||||||
@ -0,0 +1,116 @@ |
|||||||
|
# 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 access.models import User, Subscription, ActionJ |
||||||
|
|
||||||
|
_fixture = json.load(open('fixtures/access.json')) |
||||||
|
user_pk = 1 |
||||||
|
users = [] |
||||||
|
subs = [] |
||||||
|
acts = [] |
||||||
|
actjs = [] |
||||||
|
|
||||||
|
|
||||||
|
# Пример записи маршрута |
||||||
|
pk_map = json.load(open('pk_maps.json')) |
||||||
|
if 'access.user' not in pk_map: |
||||||
|
pk_map['access.user'] = {} |
||||||
|
|
||||||
|
if 'access.subscription' not in pk_map: |
||||||
|
pk_map['access.subscription'] = {} |
||||||
|
|
||||||
|
if 'access.actionj' not in pk_map: |
||||||
|
pk_map['access.actionj'] = {} |
||||||
|
|
||||||
|
for i in _fixture: |
||||||
|
if i['model'] == 'access.user': |
||||||
|
users.append(i) |
||||||
|
elif i['model'] == 'access.subscription': |
||||||
|
subs.append(i) |
||||||
|
elif i['model'] == 'access.actionj': |
||||||
|
actjs.append(i) |
||||||
|
|
||||||
|
print u'\nUsers' |
||||||
|
_now = 0 |
||||||
|
big_len = len(users) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in users: |
||||||
|
u = User.objects.create( |
||||||
|
password=i['fields']['password'], |
||||||
|
email=i['fields']['email'], |
||||||
|
changed_email=i['fields']['changed_email'], |
||||||
|
phone=i['fields']['phone'], |
||||||
|
back_phone=i['fields']['back_phone'], |
||||||
|
status=i['fields']['status'], |
||||||
|
in_role=i['fields']['in_role'], |
||||||
|
deactivate=i['fields']['deactivate'], |
||||||
|
city=i['fields']['city'], |
||||||
|
b_day=i['fields']['b_day'], |
||||||
|
token=i['fields']['token'], |
||||||
|
activate_time=i['fields']['activate_time'], |
||||||
|
reg_status=i['fields']['reg_status'], |
||||||
|
is_active=i['fields']['is_active'], |
||||||
|
is_admin=i['fields']['is_admin'], |
||||||
|
is_staff=i['fields']['is_staff'], |
||||||
|
avatar=i['fields']['avatar'], |
||||||
|
fname=i['fields']['fname'], |
||||||
|
name=i['fields']['name'], |
||||||
|
oname=i['fields']['oname'], |
||||||
|
skype='', |
||||||
|
facebook='', |
||||||
|
vk='', |
||||||
|
linkedin='', |
||||||
|
odnoklassniki='', |
||||||
|
date_joined=i['fields']['date_joined'] |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['access.user'][str(i['pk'])] = str(u.id) |
||||||
|
|
||||||
|
print u'\nSubscriptions' |
||||||
|
_now = 0 |
||||||
|
big_len = len(subs) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in subs: |
||||||
|
s = Subscription.objects.create( |
||||||
|
owner=User.objects.get(id=pk_map['access.user'][str(i['fields']['owner'])]), |
||||||
|
news=i['fields']['news'], |
||||||
|
teacher=i['fields']['teacher'], |
||||||
|
new_comments=i['fields']['new_comments'], |
||||||
|
send_sms=i['fields']['send_sms'], |
||||||
|
courses=i['fields']['courses'], |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['access.subscription'][str(i['pk'])] = str(s.id) |
||||||
|
|
||||||
|
print u'\nActions' |
||||||
|
_now = 0 |
||||||
|
big_len = len(actjs) |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for i in actjs: |
||||||
|
a = ActionJ.objects.create( |
||||||
|
student=User.objects.get(id=pk_map['access.user'][str(i['fields']['student'])]), |
||||||
|
a_type=i['fields']['a_type'], |
||||||
|
place=i['fields']['place'], |
||||||
|
date=i['fields']['date'], |
||||||
|
text=i['fields']['text'], |
||||||
|
) |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
|
pk_map['access.actionj'][str(i['pk'])] = str(a.id) |
||||||
|
|
||||||
|
|
||||||
|
json.dump(pk_map, open('pk_maps.json', 'w')) |
||||||
@ -0,0 +1 @@ |
|||||||
|
{} |
||||||
@ -0,0 +1,121 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
|
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from courses.models import CourseTheme, Course |
||||||
|
from journals.models import HomeworkTry as HT, TeacherJ, CourseThemeJ, LessonJ, HomeworkJ, ExamJ |
||||||
|
|
||||||
|
|
||||||
|
def split_ht(): |
||||||
|
# Разделить комментарии по попыткам |
||||||
|
print '==== Разбиваю попытки' |
||||||
|
big_length = HT.objects.all().count() |
||||||
|
_now = 0 |
||||||
|
show_progress(big_length, _now) |
||||||
|
for i in HT.objects.all(): |
||||||
|
# Получить все попытки |
||||||
|
# Пройтись по комментариям по порядку |
||||||
|
# Если в тексте преподавателя есть <span class="label label-danger">Отправлено на доработку!</span> |
||||||
|
# <span class="label label-success">Задача принята! </span><br> - одобрено |
||||||
|
do = True |
||||||
|
for n in i.comments.all().order_by('id'): |
||||||
|
if do: |
||||||
|
_tmp = HT.objects.create(parent=i.parent, material=i.material, student=i.student, teacher=i.teacher, |
||||||
|
date=i.date, f_date=i.f_date) |
||||||
|
do = False |
||||||
|
if '<span class="label label-success">Задача принята! </span><br>' in n.text.encode('utf8'): |
||||||
|
#print 'Нашел одобрение' |
||||||
|
_tmp.success = True |
||||||
|
_tmp.f_date = n.date |
||||||
|
_tmp.save() |
||||||
|
do = True |
||||||
|
elif '<span class="label label-danger">Отправлено на доработку!</span><br>' in n.text.encode('utf8'): |
||||||
|
#print 'Нашел отказ' |
||||||
|
_tmp.success = False |
||||||
|
_tmp.f_date = n.date |
||||||
|
_tmp.save() |
||||||
|
do = True |
||||||
|
#print 'Добавил комментарий в попытку {0}'.format(_tmp.id) |
||||||
|
_tmp.comments.add(n) |
||||||
|
i.delete() |
||||||
|
_now += 1 |
||||||
|
show_progress(big_length, _now) |
||||||
|
print '' |
||||||
|
|
||||||
|
|
||||||
|
def CTJ_split(): |
||||||
|
print '==== Создаю журналы тем' |
||||||
|
# TODO: Не нужно создавать тему там, где нет журналов? |
||||||
|
# Присвоить журналы тем домашним работам/ урокам/ экзаменам |
||||||
|
big_length = TeacherJ.objects.all().count() |
||||||
|
_now = 0 |
||||||
|
show_progress(big_length, _now) |
||||||
|
for journal in TeacherJ.objects.all(): |
||||||
|
for theme in CourseTheme.objects.filter(course=journal.course): |
||||||
|
CTJ = CourseThemeJ.objects.create(parent=journal, material=theme, student=journal.student) |
||||||
|
if CTJ.material.type == 'B': |
||||||
|
for lesson in LessonJ.objects.filter(material__theme=theme, student=journal.student): |
||||||
|
if lesson.parent != CTJ: |
||||||
|
lesson.parent = CTJ |
||||||
|
lesson.save() |
||||||
|
for homework in HomeworkJ.objects.filter(material__theme=theme, student=journal.student): |
||||||
|
if homework.parent != CTJ: |
||||||
|
homework.parent = CTJ |
||||||
|
homework.save() |
||||||
|
|
||||||
|
elif CTJ.material.type == 'Ex': |
||||||
|
try: |
||||||
|
ex = ExamJ.objects.get(material__course=journal.course, student=journal.student) |
||||||
|
except ExamJ.DoesNotExist: |
||||||
|
pass |
||||||
|
else: |
||||||
|
ex.parent = CTJ |
||||||
|
ex.save() |
||||||
|
_now += 1 |
||||||
|
show_progress(big_length, _now, post=journal.id) |
||||||
|
print '' |
||||||
|
|
||||||
|
|
||||||
|
def empty_journals(): |
||||||
|
print '==== Создаю пустые журналы' |
||||||
|
big_length = Course.objects.all().count() |
||||||
|
_now = 0 |
||||||
|
show_progress(big_length, _now) |
||||||
|
for course in Course.objects.all(): |
||||||
|
try: |
||||||
|
TeacherJ.objects.create(course=course, student=None) |
||||||
|
except: |
||||||
|
continue |
||||||
|
else: |
||||||
|
_now += 1 |
||||||
|
show_progress(big_length, _now) |
||||||
|
print '' |
||||||
|
|
||||||
|
|
||||||
|
def show_progress(full, now, post=''): |
||||||
|
# + Процесс отображения процентов выполнения |
||||||
|
# Отображение процента выполнения |
||||||
|
if full != 0: |
||||||
|
progress = float(now / (full * 0.01)) |
||||||
|
else: |
||||||
|
progress = '100' |
||||||
|
sys.stdout.write(u'\rВыполнено: {0:6.4}% {1}'.format(progress, post)) |
||||||
|
sys.stdout.flush() |
||||||
|
|
||||||
|
|
||||||
|
def rights(): |
||||||
|
os.system('chown www-data:www-data -R *') |
||||||
|
|
||||||
|
|
||||||
|
def main(): |
||||||
|
rights() |
||||||
|
#CTJ_split() |
||||||
|
empty_journals() |
||||||
|
#split_ht() |
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
main() |
||||||
@ -0,0 +1,11 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
print '==== Загружаю DJANGO' |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from courses.models import Lesson, CourseMap |
||||||
|
|
||||||
|
l = Lesson.objects.all().first() |
||||||
|
CourseMap.objects.create(lesson=l, sort=0) |
||||||
@ -0,0 +1,83 @@ |
|||||||
|
function parseGetParams() { |
||||||
|
var $_GET = {}; |
||||||
|
var __GET = window.location.search.substring(1).split("&"); |
||||||
|
for(var i=0; i<__GET.length; i++) { |
||||||
|
var getVar = __GET[i].split("="); |
||||||
|
$_GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1]; |
||||||
|
} |
||||||
|
return $_GET; |
||||||
|
} |
||||||
|
|
||||||
|
function in_array(value, array) { |
||||||
|
for(var i=0; i<array.length; i++){ |
||||||
|
if(value == array[i]) return true; |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
function check_email(data){ |
||||||
|
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; |
||||||
|
return re.test(data); |
||||||
|
} |
||||||
|
|
||||||
|
function not_empty(data){ |
||||||
|
var result = false; |
||||||
|
if (data.length > 0){ |
||||||
|
result = true |
||||||
|
} |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
function check_form(email, phone, data, error) { |
||||||
|
$(error).fadeOut('fast'); |
||||||
|
if(check_email(email) && not_empty(phone)){ |
||||||
|
create_bill($(data), $(error)) |
||||||
|
} else { |
||||||
|
$('[name=error_place]').html('Форма заполнена не верно').fadeIn(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function create_bill(form, error){ |
||||||
|
var get = parseGetParams(); |
||||||
|
if ('admitad_uid' in get){ |
||||||
|
var forms = $('forms'); |
||||||
|
var ad_ui = get['admitad_uid']; |
||||||
|
var input = '<input readonly name="uid" style="display: none;" value="'+ad_ui+'">'; |
||||||
|
for (var i =0;i<forms.length;i++){ |
||||||
|
$(forms[i]).append(input) |
||||||
|
} |
||||||
|
} |
||||||
|
$(error).fadeOut(); |
||||||
|
$.ajax({ |
||||||
|
type: 'POST', |
||||||
|
url: 'https://lms.ru/access/create_bill/', |
||||||
|
data: $(form).serialize(), |
||||||
|
success: function(data) { |
||||||
|
if (data.code == '0'){ |
||||||
|
$(error).html(data.response).fadeIn(); |
||||||
|
} else { |
||||||
|
if (data['data']['gift']){ |
||||||
|
location.href=data['data']['pay_url'] |
||||||
|
} else { |
||||||
|
$(error).html('Счет успешно добавлен').fadeIn(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
function create_user(form, error){ |
||||||
|
$(error).fadeOut(); |
||||||
|
$.ajax({ |
||||||
|
type: 'POST', |
||||||
|
url: 'https://lms.ru/access/create_user/', |
||||||
|
data: $(form).serialize(), |
||||||
|
success: function(data) { |
||||||
|
if (data.code == '0'){ |
||||||
|
$(error).html(data.response).fadeIn(); |
||||||
|
} else { |
||||||
|
$(error).html('Пользователь успешно зарегистрирован').fadeIn(); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,19 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>Title</title> |
||||||
|
<script type="text/javascript" src='jquery.min.js'></script> |
||||||
|
<script type="text/javascript" src='form.js'></script> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<form onclick="return false;" name="bill_form"> |
||||||
|
<p name="error_place" style="background: #ffc; display: none;"></p> |
||||||
|
<input name="email" placeholder="Почта" type="text"> |
||||||
|
<input name="phone" placeholder="Телефон" type="text"> |
||||||
|
<input name="token" value="iLeeoRvQM7gpAyAglTi3" readonly style="display: none;"> |
||||||
|
<input name="service" value="k7vNYr2bg7q0oAznexWfsmd9ik91OtuVjizKJQuuaRiJ3aOr5I" readonly style="display: none;"> |
||||||
|
<button onclick="check_form($('[name=email]').val(), $('[name=phone]').val(), $($(this).parent()), $('[name=error_place]'))">Отправить</button> |
||||||
|
</form> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,13 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>Подключение оплаты со стороннего ресурса</title> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<form> |
||||||
|
<input name="email"> |
||||||
|
<button onclick></button> |
||||||
|
</form> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>Title</title> |
||||||
|
<script language="javascript" src="../static/js/prototype.js"></script> |
||||||
|
<script language="javascript" src="../static/js/NTP.js"></script> |
||||||
|
<script language="javascript"> |
||||||
|
NTP.sync(); |
||||||
|
</script> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
|
||||||
|
</body> |
||||||
|
</html> |
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,10 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import re |
||||||
|
|
||||||
|
with open('1.txt', 'r') as myfile: |
||||||
|
data=myfile.read() |
||||||
|
|
||||||
|
r = re.compile(r"^[-a-z0-9!#$%&'*+/=?^_`{|}~]+(\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@([a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?\.)*(aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z])$") |
||||||
|
|
||||||
|
n = re.compile(r'\w+$') |
||||||
|
print r.findall(data) |
||||||
@ -0,0 +1,71 @@ |
|||||||
|
einzheev@itl.com.kz |
||||||
|
dmitry.sedov@inbox.ru |
||||||
|
ivanpokalyuk@gmail.com |
||||||
|
baho9208@mail.ru |
||||||
|
feyorz@gmail.com |
||||||
|
waximov@gmail.com |
||||||
|
alvo_05@mail.ru |
||||||
|
redkuk@gmail.com |
||||||
|
petrichv@gmail.com |
||||||
|
tagfelix500@gmail.com |
||||||
|
ikey0172@mail.ru |
||||||
|
gb.gayane@gmail.com |
||||||
|
eco.pun@gmail.com |
||||||
|
sanzharsurshanov@gmail.com |
||||||
|
dennis.loboda@gmail.com |
||||||
|
webar4i@gmail.com |
||||||
|
zvetaan@gmail.com |
||||||
|
svelavs@gmail.com |
||||||
|
art@magicdesign.ru |
||||||
|
mbf23tb@gmail.com |
||||||
|
andrievskiydmitriy@gmail.com |
||||||
|
pulya7@gmail.com |
||||||
|
mikhail.a.gusev@gmail.com |
||||||
|
elena@citrus-soft.ru |
||||||
|
kropev@rarus.ru |
||||||
|
nikonorov@labizum.ru |
||||||
|
gulin@labizum.ru |
||||||
|
vladfedorovich@gmail.com |
||||||
|
Gfgaliya@gmail.com |
||||||
|
romqa.guard@gmail.com |
||||||
|
srfedotov@gmail.com |
||||||
|
vinjuli4ka2008@rambler.ru |
||||||
|
kuzzzal@gmail.com |
||||||
|
zvetaan@gmail.com |
||||||
|
lepon@bk.ru |
||||||
|
y.robocopov@gmail.com |
||||||
|
enchervinskaya@gmail.com |
||||||
|
volokos@gmail.com |
||||||
|
mtsalka@scnsoft.com |
||||||
|
dubnyak404@gmail.com |
||||||
|
o.tibirkova@yandex.ru |
||||||
|
a.nikiforov@uplab.ru |
||||||
|
dmytriy.suslov@gmail.com |
||||||
|
s.shtukaturka@gmail.com |
||||||
|
alex.dntv@gmail.com |
||||||
|
m.chelyadenkov@gmail.com |
||||||
|
timur.shulgin@infocraft.ru |
||||||
|
sp.rusanov@gmail.com |
||||||
|
zyabra@gmail.com |
||||||
|
timakova@fistashki.org |
||||||
|
aknoraz@deloitte.ru |
||||||
|
sesyunin@realweb.ru |
||||||
|
bravo.johnny@yandex.ru |
||||||
|
didenko@braind.agency |
||||||
|
whysecondjuly@gmail.com |
||||||
|
yuzik.74@gmail.com |
||||||
|
art@amado-id.ru |
||||||
|
9330733@mail.ru |
||||||
|
ek.design11@gmail.com |
||||||
|
danila.zarechnev@gmail.com |
||||||
|
kira.yakuhina@gmail.com |
||||||
|
geiz@yandex.ru |
||||||
|
tuning_a@mail.ru |
||||||
|
suonarama@gmail.com |
||||||
|
abrakadavr@gmail.com |
||||||
|
irina_z_z@mail.ru irina.huchak@gmail.com |
||||||
|
ha@brightstudio.ru |
||||||
|
smorozov@qsoft.ru |
||||||
|
a.reva@qsoft.ru |
||||||
|
d.pogodin@itech-group.ru |
||||||
|
lemma.ka@gmail.com |
||||||
@ -0,0 +1,117 @@ |
|||||||
|
makspirogov@gmail.com |
||||||
|
velesart@gmail.com |
||||||
|
dmitrij.pastushenko@gmail.com |
||||||
|
pavlov@complexsys.ru |
||||||
|
ceo@pride-m.ru |
||||||
|
spinngewebex@gmail.com |
||||||
|
an_b@inbox.ru |
||||||
|
ilyuha86@gmail.com |
||||||
|
juniperland@gmail.com |
||||||
|
egor@yugs.ru |
||||||
|
kashlatch@gmail.com |
||||||
|
niozuki@mail.ru |
||||||
|
Gnatovych@gmail.com |
||||||
|
sahem@mail.ru |
||||||
|
zfalevich@gmail.com |
||||||
|
lalaviva@yandex.ru |
||||||
|
z.ilnurri@gmail.com |
||||||
|
mmaslennikov@mail.ru |
||||||
|
info@wbest.ru |
||||||
|
arthur.subbota@gmail.com |
||||||
|
goha@kiosov.com |
||||||
|
Igorfedorenko@mail.ru |
||||||
|
annazayidova@gmail.com |
||||||
|
anton.reznichenko@gmail.com |
||||||
|
me@flexure.ru |
||||||
|
es@vipro.ru |
||||||
|
km@colary.ru |
||||||
|
kiselev_s_l@mail.ru |
||||||
|
a.reznichenko@clientlab.ru |
||||||
|
soldakov.p@yandex.ru |
||||||
|
ap@ds-p.ru |
||||||
|
702752@gmail.com |
||||||
|
shpakova@sebbia.com |
||||||
|
skugarov@sebbia.com |
||||||
|
taranov@sebbia.com |
||||||
|
rusakovevgen@gmail.com |
||||||
|
frostoffman@gmail.com |
||||||
|
a.khadeko@gmail.com |
||||||
|
trogatyuk@gmail.com |
||||||
|
hello@aokunev.com |
||||||
|
dengenich@gmail.com |
||||||
|
Alexpozdnyakof@gmail.com |
||||||
|
korobajr@ya.ru |
||||||
|
pavlov@complexsys.ru |
||||||
|
elizaveta.bandalet@gmail.com |
||||||
|
deniskondrashov@yahoo.com |
||||||
|
prokosha10@gmail.com |
||||||
|
i.flinn@yandex.ru |
||||||
|
s.darbaidze@inostudio.com |
||||||
|
zhurakoff@gmail.com |
||||||
|
krylya@inbox.ru |
||||||
|
146133@gmail.com |
||||||
|
i.flinn@yandex.ru |
||||||
|
sasha.melbourne@gmail.com |
||||||
|
tiano_taurus747@mail.ru |
||||||
|
hip-hop-org@yandex.ru |
||||||
|
j.tolkova@yandex.ru |
||||||
|
jaglin@itsoft.ru |
||||||
|
den.volchkevich@gmail.com |
||||||
|
yakimov.dmitriy@gmail.com |
||||||
|
994677@mail.ru |
||||||
|
rumbeshta@userstory.ru |
||||||
|
ylkin_list@mail.ru |
||||||
|
salofoot@fermastudio.ru |
||||||
|
smiley1776@gmail.com |
||||||
|
info@darneo.ru |
||||||
|
egor@studiofact.ru |
||||||
|
alevtina.i.danilova@gmail.com |
||||||
|
puponina.irina@gmail.com |
||||||
|
yevseev@mail.ru |
||||||
|
ekde@wide-web.spb.ru |
||||||
|
corpas@gmail.com |
||||||
|
nitrohlorid@gmail.com |
||||||
|
kayl24brof@gmail.com |
||||||
|
skovalska@mail.ru |
||||||
|
Dmitry.eremin7@gmail.com |
||||||
|
Nikolebedev@mail.ru |
||||||
|
ishulga86@gmail.com |
||||||
|
bobafas@gmail.com |
||||||
|
kalina531345@gmail.com |
||||||
|
dsgn.shots@gmail.com |
||||||
|
dsukhanova@gmail.com |
||||||
|
kizilov.s@gmail.com |
||||||
|
zlk.marjana@gmail.com |
||||||
|
nava011235@gmail.com |
||||||
|
i.shymanskyi@gmail.com |
||||||
|
anastasy.petrenko87@gmail.com |
||||||
|
dinozavrix@gmail.com |
||||||
|
yana.berezhnaya999@gmail.com |
||||||
|
person.ira@gmail.com |
||||||
|
bershonok@gmail.com |
||||||
|
vivi_bvo@mail.ru |
||||||
|
lens2002@gmail.com |
||||||
|
ohmeinkot@gmail.com |
||||||
|
d22s@ya.ru |
||||||
|
masha49@yandex.ru |
||||||
|
biz.trp@gmail.com |
||||||
|
leo55506@gmail.com |
||||||
|
ksenia.vitkova@gmail.com |
||||||
|
e.poberezhnik@artw.ru |
||||||
|
alexzarkov@gmail.com |
||||||
|
ekde@wide-web.spb.ru |
||||||
|
vemelin@gmail.com |
||||||
|
gausf2@gmail.com |
||||||
|
vd@wearewowagency.com |
||||||
|
va@wearewowagency.com |
||||||
|
domrachv@gmail.com |
||||||
|
ad@wearewowagency.com |
||||||
|
jalalovna@yandex.ru |
||||||
|
mohov-g@yandex.ru |
||||||
|
st.wasp@yandex.ru |
||||||
|
Irina.lisofa@gmail.com |
||||||
|
Kornblumchen@yandex.ru |
||||||
|
albytime@gmail.com |
||||||
|
as.plyaskin@gmail.com |
||||||
|
trunovaon@gmail.com |
||||||
|
yuri.a.k.design@gmail.com |
||||||
@ -0,0 +1,108 @@ |
|||||||
|
dina@vega.nsk.ru |
||||||
|
andrii.dev@gmail.com |
||||||
|
vasukhina_av@mail.ru |
||||||
|
millie.mk5@gmail.com |
||||||
|
goto.darya@gmail.com |
||||||
|
vova@vovavova.ru |
||||||
|
Loki2d@gmail.com |
||||||
|
ilya.tymofeev@gmail.com |
||||||
|
alpha5@yandex.ru |
||||||
|
Sepeda.rafael@gmail.com |
||||||
|
zionll@yandex.ru |
||||||
|
strife88@mail.ru |
||||||
|
ele-bulavinceva@yandex.ru |
||||||
|
jack@creo.od.ua |
||||||
|
vitaly.suhorukov@gmail.com |
||||||
|
ogalin@aevrika.ru |
||||||
|
d.lexand@gmail.com |
||||||
|
info@aleskeroff.ru |
||||||
|
captainanch@ya.ru |
||||||
|
denisgorbunovmsc@gmail.com |
||||||
|
goshamanasyan@gmail.com |
||||||
|
katerina.musinova@gmail.com |
||||||
|
dmokichev@gmail.com |
||||||
|
andr@andr.kz |
||||||
|
tingmann@gmail.com |
||||||
|
romazzz@me.com |
||||||
|
execer@mail.ru |
||||||
|
egysakova@gmail.com |
||||||
|
alex.sibilev@tmd.tv |
||||||
|
portnova.ok@yandex.ru |
||||||
|
vtoryanik@livemaster.ru |
||||||
|
civanov@multicharts.com |
||||||
|
alinazoryna@gmail.com |
||||||
|
wellkin@gmail.com |
||||||
|
noc-engineer@outlook.com |
||||||
|
denis.kryukov@cyberiada.com |
||||||
|
tonyavec@gmail.com |
||||||
|
artemzig@gmail.com |
||||||
|
asvdesign@yandex.ru |
||||||
|
1ngeneer@mail.ru |
||||||
|
fynart@gmail.com |
||||||
|
pnz_08@mail.ru |
||||||
|
a@cdnvideo.ru |
||||||
|
sokdis@gmail.com |
||||||
|
blood4085@inbox.ru |
||||||
|
goryayeva@gmail.com |
||||||
|
vlkitov@gmail.com |
||||||
|
aveelik@gmail.com |
||||||
|
lida.pihora@gmail.com |
||||||
|
yanchus@mail.ru |
||||||
|
olgarafikova00@mail.ru |
||||||
|
lena@mura-show.com |
||||||
|
wm5soft@gmail.com |
||||||
|
torus.andrey@gmail.com |
||||||
|
romameteva@azoft.com |
||||||
|
dim@gifts.ru |
||||||
|
9nkags@gmail.com |
||||||
|
berezinaiv@gmail.com |
||||||
|
qmach@yandex.ru |
||||||
|
iandrew80@gmail.com |
||||||
|
irynagillis@gmail.com |
||||||
|
evgenia.deg@gmail.com |
||||||
|
tarshis.d@gmail.com |
||||||
|
e.taychenachev@gmail.com |
||||||
|
art.filkov@gmail.com |
||||||
|
connect@me.com |
||||||
|
emelyanova.olena@gmail.com |
||||||
|
pd4774@yandex.ru |
||||||
|
wizzzart@gmail.com |
||||||
|
tuhachevski@gmail.com |
||||||
|
fazeful@gmail.com |
||||||
|
molot877@mail.ru |
||||||
|
vklimovs@mail.ru |
||||||
|
slavinanm@gmail.com |
||||||
|
diems@mail.ru |
||||||
|
efomina@msk.vtb.ru |
||||||
|
xnata.d@gmail.com |
||||||
|
avmakarov@asuproject.ru |
||||||
|
corvinun@gmail.com |
||||||
|
navelis@mail.ru |
||||||
|
glebkost.dev@gmail.com |
||||||
|
nicknatochiev@me.com |
||||||
|
romagrog@gmail.com |
||||||
|
d.letko@articul.ru |
||||||
|
batovd@gmail.com |
||||||
|
nikolay.stanislavchuk@gmail.com |
||||||
|
iamkonev@gmail.com |
||||||
|
zaroman1989@gmail.com |
||||||
|
cat.kubasova@yandex.ru |
||||||
|
same.tea@gmail.com |
||||||
|
irina.medyanceva@gmail.com |
||||||
|
kattia2592@gmail.com |
||||||
|
olya.zp@ya.ru |
||||||
|
olgasnbrd@gmail.com |
||||||
|
Dhopkins@ya.ru |
||||||
|
yulenka26@gmail.com |
||||||
|
anton.tmur@gmail.com |
||||||
|
egodyston@gmail.com |
||||||
|
bel.art@mail.ru |
||||||
|
evgeniy@le-de.ru |
||||||
|
yakimova.design@gmail.com |
||||||
|
olga@le-de.ru |
||||||
|
ereshko.igor@gmail.com |
||||||
|
tn@bitek.ru |
||||||
|
gafurovt@gmail.com |
||||||
|
sofiakelemzina@gmail.com |
||||||
|
dv@ilab.kz |
||||||
|
bez.b.unix@gmail.com |
||||||
@ -0,0 +1,142 @@ |
|||||||
|
kononenko.e.p@gmail.com |
||||||
|
aplusp@yandex.ru |
||||||
|
ugarova@magora-systems.ru |
||||||
|
skoryk.yulia@gmail.com |
||||||
|
skorodymov@mail.ru |
||||||
|
xnia.nik@gmail.com |
||||||
|
yuliyahil@gmail.com |
||||||
|
alex@space-o.ru |
||||||
|
pae1@europlan.ru |
||||||
|
stasya1004@mail.ru |
||||||
|
design@spaceapp.ru |
||||||
|
alexey.g.demchuk@gmail.com |
||||||
|
ovodesign82@gmail.com |
||||||
|
nushamenshikova@gmail.com |
||||||
|
am@bonoagency.ru |
||||||
|
il@bvdp.ru |
||||||
|
ss@bvdp.ru |
||||||
|
voron86618@gmail.com |
||||||
|
makarichev.aa@gmail.com |
||||||
|
kombikovdamir@gmail.com |
||||||
|
khakifeva@croc.ru |
||||||
|
AParshikov@croc.ru |
||||||
|
alevova@gmail.com |
||||||
|
info@d-element.ru |
||||||
|
lesiawuss@gmail.com |
||||||
|
Vorobjoff@yandex.ru |
||||||
|
iskan153@gmail.com |
||||||
|
era.gromov@gmail.com |
||||||
|
ya@rl.ru |
||||||
|
ysmirnovy@gmail.com |
||||||
|
gavrylov88@gmail.com |
||||||
|
alexandrshum@gmail.com |
||||||
|
raceoffer@ya.ru |
||||||
|
yuri.froloff@gmail.com |
||||||
|
siv11@mail.ru |
||||||
|
vpetrova21@yandex.ru |
||||||
|
13malix@gmail.com |
||||||
|
execer@mail.ru |
||||||
|
itsarenko@gmail.com |
||||||
|
segavosegag@gmail.com |
||||||
|
kolos.natasha@gmail.com |
||||||
|
limosiaya@gmail.com |
||||||
|
andrayvelitchko@gmail.com |
||||||
|
lina.savenkova@gmail.com |
||||||
|
stanislav.vir@gmail.com |
||||||
|
lentyaev.m@yandex.ru |
||||||
|
artemich92@mail.ru |
||||||
|
89169113911@mail.ru |
||||||
|
marina.kavetskaya@gmail.com |
||||||
|
mobester@gmail.com |
||||||
|
fedotov@tyr24.ru |
||||||
|
zyabra@gmail.com |
||||||
|
bsv@legacystudio.ru |
||||||
|
todanilin@gmail.com |
||||||
|
pplahov@gmail.com |
||||||
|
sokwork@gmail.com |
||||||
|
kukva@me.com |
||||||
|
aytigor@gmail.com |
||||||
|
agarzaeva@yandex.ru |
||||||
|
ilyaa77@mail.ru |
||||||
|
krutolapova@mail.ru |
||||||
|
alekseyskrobot@gmail.com |
||||||
|
godortneo@gmail.com |
||||||
|
volkova78@bk.ru |
||||||
|
mako731@ya.ru |
||||||
|
m.leybova@gmail.com |
||||||
|
denisbryuhanov@gmail.com |
||||||
|
alexsteptlt@mail.ru |
||||||
|
abcdesign1@mail.ru |
||||||
|
veronikavick87@gmail.com |
||||||
|
jeneva7@gmail.com |
||||||
|
as.kretinin@gmail.com |
||||||
|
skp_15@mail.ru |
||||||
|
k-pastukhova@yandex.ru |
||||||
|
onimfa@mail.ru |
||||||
|
churkin.ig@gmail.com |
||||||
|
alla.sukhostavskaya@gmail.com |
||||||
|
kirsti-b@yandex.ru |
||||||
|
babyas@yandex.ru |
||||||
|
kosan81@yandex.ru |
||||||
|
beruchie@yandex.ru |
||||||
|
petrusevich-vladimir@yandex.ru, |
||||||
|
shama2004@bk.ru |
||||||
|
alex@hcube.ru |
||||||
|
sens11even@gmail.com |
||||||
|
fessdew@gmail.com |
||||||
|
skorodymov@mail.ru |
||||||
|
uryukovv@gmail.com |
||||||
|
ageewa@gmail.com |
||||||
|
sokolov.maksim92@yandex.ru |
||||||
|
shtrudle@yandex.ru |
||||||
|
tooob52@gmail.com |
||||||
|
sonicmails@yandex.ru |
||||||
|
ezavodchikova@me.com |
||||||
|
alinarlova@gmail.com |
||||||
|
artteq@gmail.com |
||||||
|
azazello@inbox.ru |
||||||
|
rasulmhk@gmail.com |
||||||
|
serglookas@yandex.ru |
||||||
|
edgecrasher@gmail.com |
||||||
|
a.isakov@ruslink.pro |
||||||
|
elle.s.m@yandex.ru |
||||||
|
tuna1706@yandex.ru |
||||||
|
jekashohirev@gmail.com |
||||||
|
nazarov.design@gmail.com |
||||||
|
alpmats@gmail.com |
||||||
|
sarosekml@yandex.ru |
||||||
|
norkensdrommar@yandex.ru |
||||||
|
andrei_gavrilenko@inbox.ru |
||||||
|
galadriel2007@mail.ru |
||||||
|
protchenkova_dar@mail.ru |
||||||
|
dseliverstov@yandex.ru |
||||||
|
priymakdmitry@gmail.com |
||||||
|
empaher3@yandex.ru |
||||||
|
m.chelyadenkov@gmail.com |
||||||
|
natfaga@yahoo.de |
||||||
|
yakorolevaleksei@yandex.ru |
||||||
|
zi_zind@hotmail.com |
||||||
|
lileklive@mail.ru |
||||||
|
pavelvch@gmail.com |
||||||
|
shashnia@gmail.com |
||||||
|
nifakt1@gmail.com |
||||||
|
andreyy2010@ya.ru |
||||||
|
jugastrov@gmail.com |
||||||
|
pravo@roskvartal.ru |
||||||
|
pervushin@avis-dc.ru |
||||||
|
ag@lab.ag |
||||||
|
hitzen88@gmail.com |
||||||
|
yuriy.chetverikov@gmail.com |
||||||
|
atree2010@gmail.com |
||||||
|
jamadharma13@gmail.com |
||||||
|
spolaspola@gmail.com |
||||||
|
ok.msaavedra@gmail.com |
||||||
|
Kitt.diz@gmail.com |
||||||
|
goto.darya@gmail.com |
||||||
|
mbf23tb@gmail.com |
||||||
|
letterca@gmail.com |
||||||
|
mary@ihome.ru |
||||||
|
info@legacystudio.ru |
||||||
|
lens2002@gmail.com |
||||||
|
susannafeisal6@gmail.com |
||||||
|
alexmname@gmail.com |
||||||
@ -0,0 +1,106 @@ |
|||||||
|
|
||||||
|
kononenko.e.p@gmail.com |
||||||
|
aplusp@yandex.ru |
||||||
|
ugarova@magora-systems.ru |
||||||
|
skoryk.yulia@gmail.com |
||||||
|
skorodymov@mail.ru |
||||||
|
xnia.nik@gmail.com |
||||||
|
yuliyahil@gmail.com |
||||||
|
alex@space-o.ru |
||||||
|
pae1@europlan.ru |
||||||
|
stasya1004@mail.ru |
||||||
|
design@spaceapp.ru |
||||||
|
alexey.g.demchuk@gmail.com |
||||||
|
ovodesign82@gmail.com |
||||||
|
nushamenshikova@gmail.com |
||||||
|
am@bonoagency.ru |
||||||
|
il@bvdp.ru |
||||||
|
ss@bvdp.ru |
||||||
|
voron86618@gmail.com |
||||||
|
makarichev.aa@gmail.com |
||||||
|
kombikovdamir@gmail.com |
||||||
|
khakifeva@croc.ru |
||||||
|
AParshikov@croc.ru |
||||||
|
alevova@gmail.com |
||||||
|
info@d-element.ru |
||||||
|
lesiawuss@gmail.com |
||||||
|
Vorobjoff@yandex.ru |
||||||
|
iskan153@gmail.com |
||||||
|
era.gromov@gmail.com |
||||||
|
ya@rl.ru |
||||||
|
ysmirnovy@gmail.com |
||||||
|
gavrylov88@gmail.com |
||||||
|
alexandrshum@gmail.com |
||||||
|
raceoffer@ya.ru |
||||||
|
yuri.froloff@gmail.com |
||||||
|
siv11@mail.ru |
||||||
|
vpetrova21@yandex.ru |
||||||
|
13malix@gmail.com |
||||||
|
execer@mail.ru |
||||||
|
itsarenko@gmail.com |
||||||
|
segavosegag@gmail.com |
||||||
|
kolos.natasha@gmail.com |
||||||
|
limosiaya@gmail.com |
||||||
|
andrayvelitchko@gmail.com |
||||||
|
lina.savenkova@gmail.com |
||||||
|
stanislav.vir@gmail.com |
||||||
|
lentyaev.m@yandex.ru |
||||||
|
artemich92@mail.ru |
||||||
|
89169113911@mail.ru |
||||||
|
marina.kavetskaya@gmail.com |
||||||
|
mobester@gmail.com |
||||||
|
fedotov@tyr24.ru |
||||||
|
zyabra@gmail.com |
||||||
|
bsv@legacystudio.ru |
||||||
|
todanilin@gmail.com |
||||||
|
pplahov@gmail.com |
||||||
|
sokwork@gmail.com |
||||||
|
kukva@me.com |
||||||
|
aytigor@gmail.com |
||||||
|
agarzaeva@yandex.ru |
||||||
|
ilyaa77@mail.ru |
||||||
|
krutolapova@mail.ru |
||||||
|
alekseyskrobot@gmail.com |
||||||
|
godortneo@gmail.com |
||||||
|
volkova78@bk.ru |
||||||
|
mako731@ya.ru |
||||||
|
m.leybova@gmail.com |
||||||
|
denisbryuhanov@gmail.com |
||||||
|
alexsteptlt@mail.ru |
||||||
|
abcdesign1@mail.ru |
||||||
|
veronikavick87@gmail.com |
||||||
|
jeneva7@gmail.com |
||||||
|
as.kretinin@gmail.com |
||||||
|
skp_15@mail.ru |
||||||
|
k-pastukhova@yandex.ru |
||||||
|
onimfa@mail.ru |
||||||
|
churkin.ig@gmail.com |
||||||
|
alla.sukhostavskaya@gmail.com |
||||||
|
kirsti-b@yandex.ru |
||||||
|
babyas@yandex.ru |
||||||
|
kosan81@yandex.ru |
||||||
|
beruchie@yandex.ru |
||||||
|
petrusevich-vladimir@yandex.ru, |
||||||
|
shama2004@bk.ru |
||||||
|
alex@hcube.ru |
||||||
|
sens11even@gmail.com |
||||||
|
fessdew@gmail.com |
||||||
|
skorodymov@mail.ru |
||||||
|
uryukovv@gmail.com |
||||||
|
ageewa@gmail.com |
||||||
|
sokolov.maksim92@yandex.ru |
||||||
|
shtrudle@yandex.ru |
||||||
|
tooob52@gmail.com |
||||||
|
sonicmails@yandex.ru |
||||||
|
ezavodchikova@me.com |
||||||
|
alinarlova@gmail.com |
||||||
|
artteq@gmail.com |
||||||
|
azazello@inbox.ru |
||||||
|
rasulmhk@gmail.com |
||||||
|
serglookas@yandex.ru |
||||||
|
edgecrasher@gmail.com |
||||||
|
a.isakov@ruslink.pro |
||||||
|
elle.s.m@yandex.ru |
||||||
|
tuna1706@yandex.ru |
||||||
|
jekashohirev@gmail.com |
||||||
|
nazarov.design@gmail.com |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from finance.models import Bill |
||||||
|
|
||||||
|
for i in Bill.objects.filter(manager__is_admin=True): |
||||||
|
i.opener = i.manager |
||||||
|
i.manager = None |
||||||
|
i.save() |
||||||
|
|
||||||
|
for i in Bill.objects.filter(manager__in_role__in=['M', 'S']): |
||||||
|
i._method = 'S' |
||||||
|
i.save() |
||||||
|
|
||||||
@ -0,0 +1,121 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
import datetime |
||||||
|
|
||||||
|
start = datetime.datetime.now() |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from access.models import User |
||||||
|
from journals.models import HomeworkTry, TeacherJ, HomeworkJ, ExamJ, ExamTry |
||||||
|
from lms.tools import show_progress |
||||||
|
|
||||||
|
old = User.objects.get(email='raso.practice@gmail.com') |
||||||
|
new = User.objects.get(email='nataliya.akimova47@gmail.com') |
||||||
|
new2 = User.objects.get(email='html@bedev.ru') |
||||||
|
|
||||||
|
all = (int(TeacherJ.objects.filter(teacher=old).count()) + |
||||||
|
int(HomeworkJ.objects.filter(teacher=old, f_date=None).count()) + |
||||||
|
int(HomeworkTry.objects.filter(teacher=old, f_date=None).count()) + |
||||||
|
int(ExamJ.objects.filter(teacher=old, f_date=None).count()) + |
||||||
|
int(ExamTry.objects.filter(teacher=old, f_date=None).count()) |
||||||
|
) |
||||||
|
|
||||||
|
works = ( |
||||||
|
('TJ', TeacherJ.objects.filter(teacher=old).exclude(progress=100)), |
||||||
|
('HJ', HomeworkJ.objects.filter(teacher=old, f_date=None)), |
||||||
|
('HT', HomeworkTry.objects.filter(teacher=old, f_date=None)), |
||||||
|
('EJ', ExamJ.objects.filter(teacher=old, f_date=None)), |
||||||
|
('ET', ExamTry.objects.filter(teacher=old, f_date=None)) |
||||||
|
) |
||||||
|
n = 0 |
||||||
|
to_new = set() |
||||||
|
to_new2 = set() |
||||||
|
|
||||||
|
print('Всего работ: %s' % all) |
||||||
|
for name, work in works: |
||||||
|
for point in work: |
||||||
|
if name == 'TJ': |
||||||
|
point.teacher = new |
||||||
|
to_new.add(point.student.email) |
||||||
|
|
||||||
|
elif name == 'HJ': |
||||||
|
if point.material.theme.sort < 10: |
||||||
|
point.teacher = new |
||||||
|
else: |
||||||
|
point.teacher = new2 |
||||||
|
if point.parent.parent.teacher != new2: |
||||||
|
point.parent.parent.teacher = new2 |
||||||
|
point.parent.parent.save() |
||||||
|
|
||||||
|
try: |
||||||
|
to_new.remove(point.student.email) |
||||||
|
except: |
||||||
|
pass |
||||||
|
to_new2.add(point.student.email) |
||||||
|
|
||||||
|
elif name == 'HT': |
||||||
|
if point.parent.material.theme.sort < 10: |
||||||
|
point.teacher = new |
||||||
|
else: |
||||||
|
point.teacher = new2 |
||||||
|
if point.parent.parent.parent.teacher != new2: |
||||||
|
point.parent.parent.parent.teacher = new2 |
||||||
|
point.parent.parent.parent.save() |
||||||
|
|
||||||
|
if point.parent.teacher != new2: |
||||||
|
point.parent.teacher = new2 |
||||||
|
point.parent.save() |
||||||
|
|
||||||
|
try: |
||||||
|
to_new.remove(point.student.email) |
||||||
|
except: |
||||||
|
pass |
||||||
|
to_new2.add(point.student.email) |
||||||
|
|
||||||
|
elif name == 'EJ': |
||||||
|
point.teacher = new2 |
||||||
|
if point.parent.parent.teacher != new2: |
||||||
|
point.parent.parent.teacher = new2 |
||||||
|
point.parent.parent.save() |
||||||
|
|
||||||
|
try: |
||||||
|
to_new.remove(point.student.email) |
||||||
|
except: |
||||||
|
pass |
||||||
|
to_new2.add(point.student.email) |
||||||
|
|
||||||
|
elif name == 'ET': |
||||||
|
point.teacher = new2 |
||||||
|
if point.parent.teacher != new2: |
||||||
|
point.parent.teacher = new2 |
||||||
|
point.parent.save() |
||||||
|
|
||||||
|
if point.parent.parent.parent.teacher != new2: |
||||||
|
point.parent.parent.parent.teacher = new2 |
||||||
|
point.parent.parent.parent.save() |
||||||
|
|
||||||
|
try: |
||||||
|
to_new.remove(point.student.email) |
||||||
|
except: |
||||||
|
pass |
||||||
|
to_new2.add(point.student.email) |
||||||
|
|
||||||
|
point.save() |
||||||
|
show_progress(all, n) |
||||||
|
n += 1 |
||||||
|
|
||||||
|
finish = datetime.datetime.now() |
||||||
|
print('\nTIME: %s seconds' % (finish - start).seconds) |
||||||
|
print('======================') |
||||||
|
print(new) |
||||||
|
for i in to_new: |
||||||
|
print(i) |
||||||
|
|
||||||
|
print('======================') |
||||||
|
print(new2) |
||||||
|
for i in to_new2: |
||||||
|
print(i) |
||||||
@ -0,0 +1,60 @@ |
|||||||
|
# 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 journals.models import HomeworkTry, HomeworkJ |
||||||
|
|
||||||
|
|
||||||
|
def good(tr): |
||||||
|
if not tr.success: |
||||||
|
tr.success = True |
||||||
|
if not tr.f_date: |
||||||
|
tr.f_date = tr.date |
||||||
|
tr.save() |
||||||
|
|
||||||
|
|
||||||
|
def fail(tr): |
||||||
|
if tr.success: |
||||||
|
tr.success = False |
||||||
|
if not tr.f_date: |
||||||
|
if tr.date: |
||||||
|
tr.f_date = tr.date |
||||||
|
else: |
||||||
|
tr.f_date = datetime.datetime.now() |
||||||
|
tr.save() |
||||||
|
|
||||||
|
|
||||||
|
def empty(tr): |
||||||
|
tr.delete() |
||||||
|
|
||||||
|
for i in HomeworkTry.objects.all(): |
||||||
|
if i.comments.all(): |
||||||
|
for comment in i.comments.all(): |
||||||
|
if comment.owner.in_role == 'T': |
||||||
|
if u'Задача принята!' in comment.text: |
||||||
|
good(i) |
||||||
|
break |
||||||
|
elif u'Отправлено на доработку!' in comment.text: |
||||||
|
fail(i) |
||||||
|
break |
||||||
|
else: |
||||||
|
print comment.text |
||||||
|
result = raw_input(u'Сдано? Y/N: ') |
||||||
|
if result in ['y', 'Y', 'н', 'Н']: |
||||||
|
good(i) |
||||||
|
elif result in ['n', 'N', 'т', 'Т']: |
||||||
|
fail(i) |
||||||
|
else: |
||||||
|
empty(i) |
||||||
|
|
||||||
|
#for i in HomeworkJ.objects.all(): |
||||||
|
# if i.date and i.f_date and not i.success: |
||||||
|
# i.success = True |
||||||
|
# i.save() |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
|
||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import datetime |
||||||
|
import django |
||||||
|
import sys |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from courses.models import Course |
||||||
|
for course in Course.objects.all(): |
||||||
|
course.build_map() |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from access.models import UserRequest |
||||||
|
|
||||||
|
_in = { |
||||||
|
#'user': [] |
||||||
|
} |
||||||
|
|
||||||
|
for i in UserRequest.objects.all(): |
||||||
|
if not _in.get(i.user.id): |
||||||
|
_in[i.user.id] = [i.ip] |
||||||
|
else: |
||||||
|
if i.ip in _in[i.user.id]: |
||||||
|
i.delete() |
||||||
|
else: |
||||||
|
_in[i.user.id].append(i.ip) |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from journals.models import LessonJ |
||||||
|
|
||||||
|
for lj in LessonJ.objects.filter(parent=None): |
||||||
|
print lj |
||||||
|
lj.save('only_parent') |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import datetime |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from access.models import User |
||||||
|
from journals.models import ExamTry, HomeworkTry |
||||||
|
from management.letters import sent_new_expired |
||||||
|
|
||||||
|
for res in (ExamTry.objects.filter(f_date=None).exclude(expired=True), |
||||||
|
HomeworkTry.objects.filter(f_date=None).exclude(expired=True)): |
||||||
|
#print res |
||||||
|
for _try in res: |
||||||
|
#print _try |
||||||
|
# Проверка экзамена |
||||||
|
if _try.date + datetime.timedelta(days=1) < datetime.datetime.now(): |
||||||
|
_try.expired = True |
||||||
|
_try.save() |
||||||
|
for user in User.objects.filter(in_role='S2'): |
||||||
|
sent_new_expired(_try, user.email) |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
# 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 |
||||||
|
from journals.models import TeacherJ |
||||||
|
from access.models import User |
||||||
|
|
||||||
|
for user in User.objects.all(): |
||||||
|
for course in Course.objects.all(): |
||||||
|
if not TeacherJ.objects.filter(student=user, course=course).exists(): |
||||||
|
|
||||||
|
print course |
||||||
|
print user |
||||||
@ -0,0 +1,106 @@ |
|||||||
|
# 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 journals.models import TeacherJ, LessonJ, HomeworkJ, ExamJ, CourseThemeJ |
||||||
|
from courses.models import Course, CourseMap |
||||||
|
|
||||||
|
|
||||||
|
def getMap_journal(_map, student): |
||||||
|
ob = None |
||||||
|
if _map._type == 'L': |
||||||
|
#try: |
||||||
|
ob = LessonJ.objects.get(material=_map.lesson, student=student) |
||||||
|
#except LessonJ.DoesNotExist: |
||||||
|
# print _map.lesson |
||||||
|
# print student.email |
||||||
|
# raise LessonJ.DoesNotExist |
||||||
|
|
||||||
|
elif _map._type == 'H': |
||||||
|
#try: |
||||||
|
ob = HomeworkJ.objects.get(material=_map.homework, student=student) |
||||||
|
#except HomeworkJ.DoesNotExist: |
||||||
|
# print _map.lesson |
||||||
|
# print student.email |
||||||
|
# raise HomeworkJ.DoesNotExist |
||||||
|
|
||||||
|
elif _map._type == 'E': |
||||||
|
#try: |
||||||
|
ob = ExamJ.objects.get(material=_map.exam, student=student) |
||||||
|
#except ExamJ.DoesNotExist: |
||||||
|
# print _map.lesson |
||||||
|
# print student.email |
||||||
|
# raise ExamJ.DoesNotExist |
||||||
|
|
||||||
|
return ob |
||||||
|
|
||||||
|
|
||||||
|
def rel(j): |
||||||
|
j.date = None |
||||||
|
j.f_date = None |
||||||
|
j.success = False |
||||||
|
j.save() |
||||||
|
|
||||||
|
for course in Course.objects.all(): |
||||||
|
print course |
||||||
|
for journal in TeacherJ.objects.filter(course=course).order_by('-student__id'): |
||||||
|
for theme in CourseThemeJ.objects.filter(parent=journal): |
||||||
|
#print theme |
||||||
|
theme.date = None |
||||||
|
theme.f_date = None |
||||||
|
theme.success = False |
||||||
|
theme.save() |
||||||
|
|
||||||
|
last = None |
||||||
|
_reload = False |
||||||
|
|
||||||
|
for _map in CourseMap.objects.filter(course=course).order_by('sort'): |
||||||
|
try: |
||||||
|
j = getMap_journal(_map, journal.student) |
||||||
|
except LessonJ.DoesNotExist: |
||||||
|
pass |
||||||
|
except HomeworkJ.DoesNotExist: |
||||||
|
pass |
||||||
|
except ExamJ.DoesNotExist: |
||||||
|
pass |
||||||
|
else: |
||||||
|
status = j.get_status_flag() |
||||||
|
|
||||||
|
if status == 'F' and j.date and j.f_date and j.success and not _reload: |
||||||
|
last = j |
||||||
|
|
||||||
|
elif _reload: |
||||||
|
rel(j) |
||||||
|
|
||||||
|
elif _map.sort and last: |
||||||
|
if getMap_journal(CourseMap.objects.get(course=course, sort=int(_map.sort)-1), journal.student) == last: |
||||||
|
_reload = True |
||||||
|
s = False |
||||||
|
if not j.date: |
||||||
|
j.date = datetime.datetime.now() |
||||||
|
s = True |
||||||
|
|
||||||
|
if j.f_date: |
||||||
|
j.f_date = None |
||||||
|
s = True |
||||||
|
|
||||||
|
if j.success: |
||||||
|
j.success = False |
||||||
|
s = True |
||||||
|
|
||||||
|
if s: |
||||||
|
j.save() |
||||||
|
|
||||||
|
elif _map.sort and not last: |
||||||
|
_reload = True |
||||||
|
rel(j) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,34 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
import datetime |
||||||
|
|
||||||
|
start = datetime.datetime.now() |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from lms.settings import BASE_DIR |
||||||
|
from journals.models import TeacherJ, check_journal |
||||||
|
from lms.tools import show_progress |
||||||
|
|
||||||
|
all = TeacherJ.objects.filter(progress__gt=0).count() |
||||||
|
|
||||||
|
print('Количество журналов на проверку: %s' % all) |
||||||
|
n = 0 |
||||||
|
f = open(os.path.join(BASE_DIR, 'journals/check_switch'), 'w') |
||||||
|
f.write('1\n') |
||||||
|
f.close() |
||||||
|
|
||||||
|
for i in TeacherJ.objects.filter(progress__gt=0).order_by('-id'): |
||||||
|
check_journal(i, from_console=True) |
||||||
|
show_progress(all, n) |
||||||
|
n += 1 |
||||||
|
|
||||||
|
f = open(os.path.join(BASE_DIR, 'journals/check_switch'), 'w') |
||||||
|
f.write('0\n') |
||||||
|
f.close() |
||||||
|
|
||||||
|
finish = datetime.datetime.now() |
||||||
|
print('\nTIME: %s seconds' % (finish-start).seconds) |
||||||
@ -0,0 +1,28 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
import datetime |
||||||
|
|
||||||
|
start = datetime.datetime.now() |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from journals.models import TeacherJ, LessonJ |
||||||
|
# Получить все журналы, где начато обучение |
||||||
|
for journal in TeacherJ.objects.filter(status='W'): |
||||||
|
before = [] |
||||||
|
for l in LessonJ.objects.filter(parent__parent=journal).order_by('material__token'): |
||||||
|
if l.get_status_flag()=='N': |
||||||
|
before.append(l) |
||||||
|
else: |
||||||
|
if before: |
||||||
|
for i in before: |
||||||
|
print('Открыл: {0}'.format(i.id)) |
||||||
|
i.open_material() |
||||||
|
|
||||||
|
# Получить |
||||||
|
# Найти уроки, находящиеся в статусе N в середине курса |
||||||
|
|
||||||
|
# Открыть в статус - доступно |
||||||
@ -0,0 +1,16 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
import datetime |
||||||
|
|
||||||
|
start = datetime.datetime.now() |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from journals.models import HomeworkJ |
||||||
|
|
||||||
|
for i in HomeworkJ.objects.filter(f_date=None).exclude(date=None): |
||||||
|
i.open_next() |
||||||
|
|
||||||
@ -0,0 +1,47 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
import datetime |
||||||
|
print(1) |
||||||
|
start = datetime.datetime.now() |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
print(2) |
||||||
|
from courses.models import CourseMap |
||||||
|
from journals.models import TeacherJ, LessonJ, HomeworkJ, HomeworkTry, CourseThemeJ |
||||||
|
# Получить все журналы, где начато обучение |
||||||
|
print(3) |
||||||
|
last = TeacherJ.objects.filter(status='W').order_by('-id').last().id |
||||||
|
print(4) |
||||||
|
|
||||||
|
for journal in TeacherJ.objects.filter(id=26933).order_by('-id'): |
||||||
|
print(journal.id) |
||||||
|
if HomeworkTry.objects.filter(material__course__id=journal.course.id, student__id=journal.student.id).exists(): |
||||||
|
print('4a') |
||||||
|
hw = int(CourseMap.objects.get( |
||||||
|
homework=HomeworkTry.objects.filter(parent__parent__parent=journal).order_by('id').last().material).sort) |
||||||
|
print(hw) |
||||||
|
for i in LessonJ.objects.filter(parent__parent=journal): |
||||||
|
if int(CourseMap.objects.get(lesson=i.material).sort) > hw: |
||||||
|
i.date = None |
||||||
|
i.f_date = None |
||||||
|
i.success = False |
||||||
|
i.save() |
||||||
|
else: |
||||||
|
try: |
||||||
|
i.saw_this() |
||||||
|
except Exception as e: |
||||||
|
print(e) |
||||||
|
print(i) |
||||||
|
|
||||||
|
|
||||||
|
for ct in CourseThemeJ.objects.filter(parent=journal): |
||||||
|
if LessonJ.objects.filter(parent=ct).count() == LessonJ.objects.filter(parent=ct, date=None).count(): |
||||||
|
ct.date = None |
||||||
|
ct.save() |
||||||
|
|
||||||
|
print(5) |
||||||
|
#for i in HomeworkJ.objects.filter(f_date=None).exclude(date=None): |
||||||
|
# i.open_next() |
||||||
@ -0,0 +1,28 @@ |
|||||||
|
# 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 __migrate.post_fixtures import show_progress |
||||||
|
from journals.models import HomeworkJ, LessonJ, TeacherJ |
||||||
|
from access.models import User |
||||||
|
from courses.models import Course |
||||||
|
|
||||||
|
_now = 0 |
||||||
|
big_len = TeacherJ.objects.all().count() |
||||||
|
show_progress(big_len, _now) |
||||||
|
|
||||||
|
for journal in TeacherJ.objects.all(): |
||||||
|
for hj in HomeworkJ.objects.filter(student=journal.student): |
||||||
|
if hj.get_status_flag() != 'N': |
||||||
|
for lj in LessonJ.objects.filter(student=journal.student, material__theme=hj.material.theme): |
||||||
|
lj.saw_this() |
||||||
|
_now += 1 |
||||||
|
show_progress(big_len, _now) |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
@ -0,0 +1,9 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
@ -0,0 +1,26 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from journals.models import TeacherJ, CourseThemeJ, LessonJ, ExamJ, HomeworkJ |
||||||
|
|
||||||
|
for i in TeacherJ.objects.all(): |
||||||
|
if i.waiting.exists(): |
||||||
|
for n in i.waiting.all(): |
||||||
|
obj = n.get_obj() |
||||||
|
if n._type == 'L': |
||||||
|
mj = LessonJ.objects.get(material=obj, student=i.student) |
||||||
|
|
||||||
|
elif n._type == 'H': |
||||||
|
mj = HomeworkJ.objects.get(material=obj, student=i.student) |
||||||
|
|
||||||
|
elif n._type == 'E': |
||||||
|
mj = ExamJ.objects.get(material=obj, student=i.student) |
||||||
|
|
||||||
|
cj = CourseThemeJ.objects.get(student=i.student, material=obj.theme) |
||||||
|
if cj.get_status_flag() == 'N' or mj.get_status_flag() != 'N': |
||||||
|
i.waiting.remove(n) |
||||||
@ -0,0 +1,27 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
import datetime |
||||||
|
|
||||||
|
|
||||||
|
start = datetime.datetime.now() |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from finance.models import Price |
||||||
|
from lms.tools import show_progress |
||||||
|
|
||||||
|
all = Price.objects.filter(by_time=0, post_fire=0).count() |
||||||
|
|
||||||
|
print('Количество услуг на проверку: %s' % all) |
||||||
|
n = 0 |
||||||
|
|
||||||
|
for i in Price.objects.filter(by_time=0, post_fire=0): |
||||||
|
i.check_points() |
||||||
|
show_progress(all, n) |
||||||
|
n += 1 |
||||||
|
|
||||||
|
finish = datetime.datetime.now() |
||||||
|
print('\nTIME: %s seconds' % (finish-start).seconds) |
||||||
@ -0,0 +1,41 @@ |
|||||||
|
from __future__ import print_function |
||||||
|
import datetime |
||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from access.models import User |
||||||
|
from journals.models import ExamTry, HomeworkTry |
||||||
|
|
||||||
|
|
||||||
|
def check_robo_prep(): |
||||||
|
teacher = User.objects.get(email='t@lms.ru') |
||||||
|
handler = [] |
||||||
|
for journal in HomeworkTry.objects.filter(teacher=teacher, f_date=None).exclude(success=True, date=None).order_by('date'): |
||||||
|
if journal.parent.get_status_flag not in ['N', 'F']: |
||||||
|
handler.append(journal) |
||||||
|
|
||||||
|
for journal in ExamTry.objects.filter(teacher=teacher, f_date=None).exclude(success=True, date=None).order_by('date'): |
||||||
|
if journal.parent.get_status_flag not in ['N', 'F']: |
||||||
|
handler.append(journal) |
||||||
|
|
||||||
|
print(handler) |
||||||
|
for _tr in handler: |
||||||
|
for _cm in _tr.comments.all(): |
||||||
|
s = False |
||||||
|
print(_cm.text) |
||||||
|
if 'GO_TO_SUCCESS' in _cm.text: |
||||||
|
_tr.success = True |
||||||
|
_tr.f_date = datetime.datetime.now() |
||||||
|
s = True |
||||||
|
elif 'GO_TO_FAIL' in _cm.text: |
||||||
|
_tr.f_date = datetime.datetime.now() |
||||||
|
s = True |
||||||
|
if s: |
||||||
|
_tr.save() |
||||||
|
|
||||||
|
check_robo_prep() |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
# Переназначение перподавателя |
||||||
|
from journals.models import TeacherJ, HomeworkJ, HomeworkTry |
||||||
|
from access.models import User |
||||||
|
old = User.objects.get(id=1324) |
||||||
|
for tj in TeacherJ.objects.filter(teacher=old).exclude(student=None): |
||||||
|
if not (tj.student.is_admin and tj.student.is_staff): |
||||||
|
print(tj.id) |
||||||
|
tj.teacher = None |
||||||
|
tj.save() |
||||||
|
ht = tj.get_current_ht() |
||||||
|
hw = tj.get_last_hw() |
||||||
|
hw.teacher=None |
||||||
|
hw.save() |
||||||
|
ht.teacher=None |
||||||
|
ht.save() |
||||||
|
print(ht.teacher) |
||||||
@ -0,0 +1,31 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
from __future__ import print_function |
||||||
|
from __future__ import print_function |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from storage.models import Storage, CroppedImage |
||||||
|
|
||||||
|
errors = [] |
||||||
|
for store in Storage.objects.all(): |
||||||
|
# Проверить original, f_format.icon |
||||||
|
obj = (store.original.path if store.original else '', |
||||||
|
store.f_format.icon.path if store.f_format and store.f_format.icon else '') |
||||||
|
for i in obj: |
||||||
|
if i and not os.path.exists(i): |
||||||
|
print('Storage: {0}'.format(store.id)) |
||||||
|
#print 'Ошибки файлов: {0}'.format(len(errors)) |
||||||
|
|
||||||
|
for store in CroppedImage.objects.all(): |
||||||
|
# croppedimage.big, croppedimage.middle, croppedimage.small |
||||||
|
obj = (store.big.path if store.big else '', |
||||||
|
store.middle.path if store.middle else '', |
||||||
|
store.small.path if store.small else '') |
||||||
|
for i in obj: |
||||||
|
if i and not os.path.exists(i): |
||||||
|
print('CroppedImage: {0}'.format(store.id)) |
||||||
|
#print 'Ошибки файлов: {0}'.format(len(errors)) |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from journals.models import TeacherJ, ExamJ, HomeworkJ, LessonJ |
||||||
|
|
||||||
|
for journal in TeacherJ.objects.all(): |
||||||
|
if journal.waiting.exists(): |
||||||
|
for i in journal.waiting.all(): |
||||||
|
j = None |
||||||
|
_type, _map = i.get_next() |
||||||
|
if _type == 'L': |
||||||
|
j = LessonJ.objects.filter(material=_map, student=journal.student) |
||||||
|
elif _type == 'H': |
||||||
|
j = HomeworkJ.objects.filter(material=_map, student=journal.student) |
||||||
|
elif _type == 'E': |
||||||
|
j = ExamJ.objects.filter(material=_map, student=journal.student) |
||||||
|
|
||||||
|
if j and j.first().get_status_flag() == 'N': |
||||||
|
journal.waiting.remove(i) |
||||||
@ -0,0 +1,56 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
import datetime |
||||||
|
|
||||||
|
|
||||||
|
start = datetime.datetime.now() |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from management.models import Comment, gen_comment_token |
||||||
|
from lms.tools import show_progress |
||||||
|
|
||||||
|
all = Comment.objects.all().count() |
||||||
|
|
||||||
|
print('Количество точек на проверку: %s' % all) |
||||||
|
n = 0 |
||||||
|
|
||||||
|
exclude = ['[size=100]', '[/size]', '[size=150]', '[/font]', '[table]', '[/table]', |
||||||
|
'[tr]', '[td]', '[/td]', '[/tr]'] |
||||||
|
rever = ['[b]', '[i]', '[*]', '[url=', ] |
||||||
|
for i in exclude: |
||||||
|
rever.append(i) |
||||||
|
|
||||||
|
for comment in Comment.objects.all().order_by('-date'): |
||||||
|
s = False |
||||||
|
if not comment.token: |
||||||
|
comment.token = gen_comment_token(comment) |
||||||
|
s = True |
||||||
|
|
||||||
|
bb_text = str(comment.bbtext) |
||||||
|
if not bb_text: |
||||||
|
r = False |
||||||
|
for i in rever: |
||||||
|
if i in comment.text: |
||||||
|
r = True |
||||||
|
if r: |
||||||
|
bb_text = comment.text |
||||||
|
s = True |
||||||
|
|
||||||
|
for i in exclude: |
||||||
|
if i in bb_text: |
||||||
|
bb_text = bb_text.replace(i, '') |
||||||
|
s = True |
||||||
|
|
||||||
|
if s: |
||||||
|
comment.bbtext = bb_text |
||||||
|
comment.save() |
||||||
|
|
||||||
|
show_progress(all, n) |
||||||
|
n += 1 |
||||||
|
|
||||||
|
finish = datetime.datetime.now() |
||||||
|
print('\nTIME: %s seconds' % (finish-start).seconds) |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from finance.models import Bill |
||||||
|
from access.models import User |
||||||
|
from courses.models import Course |
||||||
|
|
||||||
|
result = {} |
||||||
|
for user in User.objects.all(): |
||||||
|
result[user.email] = dict({course.id: False for course in Course.objects.all()}) |
||||||
|
for bill in Bill.objects.filter(status='F').order_by('date'): |
||||||
|
if result[bill.user.email][bill.service.course.id]: |
||||||
|
bill.delete() |
||||||
|
else: |
||||||
|
result[bill.user.email][bill.service.course.id] = True |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
import os |
||||||
|
|
||||||
|
APPS = ('management', 'storage', 'access', 'courses', 'finance', 'journals', ) |
||||||
|
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) |
||||||
|
|
||||||
|
|
||||||
|
def main(): |
||||||
|
#os.system('rm -rf fixtures/') |
||||||
|
#os.system('cp -R fixtures_back/ fixtures/') |
||||||
|
for i in APPS: |
||||||
|
os.chdir(os.path.join(BASE_DIR, i)) |
||||||
|
os.system('rm -rf *.pyc') |
||||||
|
os.system('rm -rf migrations') |
||||||
|
os.chdir(os.path.join(BASE_DIR)) |
||||||
|
#os.system('python manage.py makemigrations {0}'.format(i)) |
||||||
|
#os.system('python manage.py migrate') |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
main() |
||||||
@ -0,0 +1,106 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import copy |
||||||
|
|
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from access.models import User, ActionJ |
||||||
|
from journals.models import TeacherJ, CourseThemeJ, AchievementJ, DiplomaJ, ExamTry, HomeworkTry, ExamJ, HomeworkJ, \ |
||||||
|
LessonJ |
||||||
|
from finance.models import Bill |
||||||
|
from management.models import Comment |
||||||
|
|
||||||
|
_source = User.objects.get(id=2) |
||||||
|
_to = User.objects.get(id=465) |
||||||
|
|
||||||
|
# 1) Скопировать Журнал преподавания |
||||||
|
# 2) Журнал тем |
||||||
|
# 3) Журнал Уроков |
||||||
|
# 4) Журнал ДЗ |
||||||
|
# 5) Журнал Экзаменов |
||||||
|
# 6) Комментарии |
||||||
|
# 7) Журнал Диплома |
||||||
|
#Bill.objects.filter(user=_to).delete() |
||||||
|
#for bill in Bill.objects.filter(user=_source): |
||||||
|
# bill.user = _to |
||||||
|
# bill.pk = None |
||||||
|
# bill.save() |
||||||
|
|
||||||
|
#TeacherJ.objects.filter(student=_to).delete() |
||||||
|
#CourseThemeJ.objects.filter(student=_to).delete() |
||||||
|
##ExamJ.objects.filter(student=_to).delete() |
||||||
|
#ExamTry.objects.filter(student=_to).delete() |
||||||
|
#HomeworkJ.objects.filter(student=_to).delete() |
||||||
|
#HomeworkTry.objects.filter(student=_to).delete() |
||||||
|
#LessonJ.objects.filter(student=_to).delete() |
||||||
|
|
||||||
|
#for tj in TeacherJ.objects.filter(student=_source): |
||||||
|
# to = tj |
||||||
|
# tj.student = _to |
||||||
|
# tj.pk = None |
||||||
|
# tj.save() |
||||||
|
|
||||||
|
# for cj in CourseThemeJ.objects.filter(student=_source, parent=to): |
||||||
|
# co = copy.copy(cj) |
||||||
|
# cj.student = _to |
||||||
|
# cj.parent = tj |
||||||
|
# cj.pk = None |
||||||
|
# cj.save() |
||||||
|
|
||||||
|
# for lj in LessonJ.objects.filter(student=_source, parent=co): |
||||||
|
# lj.student = _to |
||||||
|
# lj.parent = cj |
||||||
|
# lj.pk = None |
||||||
|
# lj.save() |
||||||
|
|
||||||
|
# for ej in ExamJ.objects.filter(student=_source, parent=co): |
||||||
|
# eo = copy.copy(ej) |
||||||
|
# ej.student = _to |
||||||
|
# ej.parent = cj |
||||||
|
# ej.pk = None |
||||||
|
# ej.save() |
||||||
|
|
||||||
|
# for et in ExamTry.objects.filter(student=_source, parent=eo): |
||||||
|
# et.student = _to |
||||||
|
# et.parent = ej |
||||||
|
# et.pk = None |
||||||
|
# et.save() |
||||||
|
|
||||||
|
#for hj in HomeworkJ.objects.filter(student=_source, parent=co): |
||||||
|
# ho = copy.copy(hj) |
||||||
|
# hj.student = _to |
||||||
|
# hj.parent = cj |
||||||
|
# hj.pk = None |
||||||
|
# hj.save() |
||||||
|
|
||||||
|
# for ht in HomeworkTry.objects.filter(student=_source, parent=ho): |
||||||
|
# ht.student = _to |
||||||
|
# ht.parent = hj |
||||||
|
# ht.pk = None |
||||||
|
# ht.save() |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AchievementJ.objects.filter(student=_to).delete() |
||||||
|
for aj in AchievementJ.objects.filter(student=_source): |
||||||
|
aj.student = _to |
||||||
|
aj.pk = None |
||||||
|
aj.save() |
||||||
|
|
||||||
|
#DiplomaJ.objects.filter(student=_to).delete() |
||||||
|
#for dj in DiplomaJ.objects.filter(student=_source): |
||||||
|
# dj.student = _to |
||||||
|
# dj.gen = False |
||||||
|
# dj.key = '' |
||||||
|
# dj.pk = None |
||||||
|
# dj.save() |
||||||
|
|
||||||
|
#ActionJ.objects.filter(student=_to).delete() |
||||||
|
#for aj in ActionJ.objects.filter(student=_source): |
||||||
|
# aj.student = _to |
||||||
|
# aj.pk = None |
||||||
|
# aj.save() |
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,20 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
from lms.tools import convert_html_to_bb |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from management.models import Comment |
||||||
|
|
||||||
|
errors = [] |
||||||
|
for comment in Comment.objects.all(): |
||||||
|
try: |
||||||
|
comment.bbtext = convert_html_to_bb(comment.text) |
||||||
|
except: |
||||||
|
errors.append(comment.id) |
||||||
|
else: |
||||||
|
comment.save() |
||||||
@ -0,0 +1,46 @@ |
|||||||
|
# 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 Diploma, User |
||||||
|
from journals.models import DiplomaJ |
||||||
|
|
||||||
|
u = { |
||||||
|
'medvedward@mail.ru': {'key': '363 005 072', 'date': '29.07.2015'}, |
||||||
|
'oss@inbox.com': {'key': '363 005 074', 'date': '24.08.2015'}, |
||||||
|
'artyomzolotykh@gmail.com': {'key': '363 005 076', 'date': '21.08.2015'}, |
||||||
|
'susenko_a@ukr.net': {'key': '363 005 077', 'date': '25.08.2015'}, |
||||||
|
'ebortnikov@mail.ru': {'key': '363 005 078', 'date': '25.08.2015'}, |
||||||
|
'kovalev.home@mail.ru': {'key': '363 005 079', 'date': '05.10.2015'}, |
||||||
|
'mahneva-mariya@mail.ru': {'key': '365 005 080', 'date': '23.10.2015'}, |
||||||
|
'flintl@bk.ru': {'key': '366 005 081', 'date': '26.10.2015'}, |
||||||
|
'a.michurin1783@mail.ru': {'key': '367 005 082', 'date': '27.10.2015'}, |
||||||
|
'Vals_0791@mail.ru': {'key': '368 005 083', 'date': '07.12.2015'}, |
||||||
|
'artyomzykov@gmail.com': {'key': '369 005 084', 'date': '12.01.2016'}, |
||||||
|
'threed@rsgc.ru': {'key': '370 005 085', 'date': '15.02.2016'}, |
||||||
|
'walerock@mail.ru': {'key': '371 005 086', 'date': '18.02.2016'}, |
||||||
|
'garuskin.dima@gmail.com': {'key': '372 005 087', 'date': '30.01.2016'}, |
||||||
|
'rock_n_vladok@mail.ru': {'key': '373 005 088', 'date': '06.03.2016'}, |
||||||
|
'anton_semenchuk@rambler.ru': {'key': '374 005 089', 'date': '09.03.2016'}, |
||||||
|
'orloff.eg@yandex.ru': {'key': '375 005 090', 'date': '11.03.2016'}, |
||||||
|
'ysenko.mi@gmail.com': {'key': '376 005 091', 'date': '13.03.2016'}, |
||||||
|
'nadin12233@mail.ru': {'key': '377 005 092', 'date': '13.03.2016'}, |
||||||
|
'serge-meb@mail.ru': {'key': '378 005 093', 'date': '02.04.2016'} |
||||||
|
} |
||||||
|
for key, value in u.items(): |
||||||
|
try: |
||||||
|
user = User.objects.get(email=key) |
||||||
|
except User.DoesNotExist: |
||||||
|
print key |
||||||
|
else: |
||||||
|
key = int(''.join(value['key'].split(' '))) |
||||||
|
date = value['date'].split('.') |
||||||
|
DiplomaJ.objects.create(date=datetime.date(int(date[2]), int(date[1]), int(date[0])), |
||||||
|
key=key, |
||||||
|
student=user, |
||||||
|
material=Diploma.objects.get(id=1)) |
||||||
@ -0,0 +1,25 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from service.models import MailBox |
||||||
|
|
||||||
|
for letter in MailBox.objects.filter(result=''): |
||||||
|
letter.result = 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 width=100%>{0}' \ |
||||||
|
u'<tr><td style="padding-bottom: 20px;">С уважением,<Br>Точка кода</td></tr>' \ |
||||||
|
u'<tr><td style="padding-bottom: 20px;"><img src="http://lms.ru/static/img/logo.png"></td></tr>' \ |
||||||
|
u'</table>' \ |
||||||
|
u'</body>' \ |
||||||
|
u'</html>'.format(letter.text) |
||||||
|
letter.save() |
||||||
@ -0,0 +1,22 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from access.models import User |
||||||
|
from management.models import ModalTask |
||||||
|
from journals.models import TeacherJ |
||||||
|
|
||||||
|
manager = User.objects.get(id=2) |
||||||
|
errors = [] |
||||||
|
task = ModalTask.objects.get(id=29) |
||||||
|
for i in TeacherJ.objects.filter(status='W', course__id=16).exclude(student=None): |
||||||
|
task.user.add(i.student) |
||||||
|
task.save() |
||||||
|
print(errors) |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from management.models import ModalStack, Modals |
||||||
|
from journals.models import TeacherJ |
||||||
|
|
||||||
|
general_modal = Modals.objects.get(key='JavaWebinar_mini') |
||||||
|
|
||||||
|
for i in TeacherJ.objects.filter(course__id=2): |
||||||
|
print '%s: %s' % (i.id, i) |
||||||
|
if i.teacher and i.student: |
||||||
|
general_modal.create_stack(i.student) |
||||||
@ -0,0 +1,28 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
from datetime import datetime, timedelta |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from management.models import Modals, ModalStack |
||||||
|
from access.models import User |
||||||
|
from finance.models import Bill |
||||||
|
user = User.objects.get(id=2) |
||||||
|
|
||||||
|
#for bill in Bill.objects.filter(modals_show=False, _type='P'): |
||||||
|
# if not bill.start_fire: |
||||||
|
# bill.start_fire = bill.finish_date + timedelta(days=bill.service.by_time) |
||||||
|
# bill.save() |
||||||
|
|
||||||
|
for bill in Bill.objects.filter(start_fire__lte=datetime.now(), modals_show=False, _type='P'): |
||||||
|
for modal in bill.service.modals.all(): |
||||||
|
modal.create_stack(bill.user) |
||||||
|
bill.modals_show = True |
||||||
|
print bill |
||||||
|
bill.save() |
||||||
@ -0,0 +1,38 @@ |
|||||||
|
info@sibirix.ru |
||||||
|
denisov.s.s@yandex.ru |
||||||
|
oleksandrgumeniuk@gmail.com |
||||||
|
9990405@gmail.com |
||||||
|
uasam@mail.ru |
||||||
|
webar4i@gmail.com |
||||||
|
vladfedorovich@gmail.com |
||||||
|
Gfgaliya@gmail.com |
||||||
|
zvetaan@gmail.com |
||||||
|
volokos@gmail.com |
||||||
|
sp.rusanov@gmail.com |
||||||
|
bravo.johnny@yandex.ru |
||||||
|
art@amado-id.ru |
||||||
|
suonarama@gmail.com |
||||||
|
velesart@gmail.com |
||||||
|
ceo@pride-m.ru |
||||||
|
spinngewebex@gmail.com |
||||||
|
lalaviva@yandex.ru |
||||||
|
me@flexure.ru |
||||||
|
trogatyuk@gmail.com |
||||||
|
hello@aokunev.com |
||||||
|
krylya@inbox.ru |
||||||
|
tiano_taurus747@mail.ru |
||||||
|
jaglin@itsoft.ru |
||||||
|
994677@mail.ru |
||||||
|
rumbeshta@userstory.ru |
||||||
|
puponina.irina@gmail.com |
||||||
|
zlk.marjana@gmail.com |
||||||
|
yana.berezhnaya999@gmail.com |
||||||
|
vivi_bvo@mail.ru |
||||||
|
lens2002@gmail.com |
||||||
|
ohmeinkot@gmail.com |
||||||
|
e.poberezhnik@artw.ru |
||||||
|
domrachv@gmail.com |
||||||
|
Irina.lisofa@gmail.com |
||||||
|
natasha.skulskaia@gmail.com |
||||||
|
dubnyak404@gmail.com |
||||||
|
bez.b.unix@gmail.com |
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@ |
|||||||
|
ha@brightstudio.ru, gnatovych@gmail.com, anna.trotsina@gmail.com, robert@mokselle.ru, annazayidova@gmail.com, sharapov.nail@gmail.com, art.magomaev@gmail.com, varvarakravchenko@yandex.ru, 9990405@gmail.com, spinngewebex@gmail.com, ilyuha86@gmail.com, kashlatch@gmail.com, kira.yakuhina@gmail.com, juniperland@gmail.com, aknoraz@deloitte.ru, tuning_a@mail.ru, danila.zarechnev@gmail.com, dmitrij.pastushenko@gmail.com, madjaw@mail.ru, lemma.ka@gmail.com, xxnikolayxx@gmail.com, artnebo@gmail.com, 9330733@mail.ru, velesart@gmail.com, abrakadavr@gmail.com, zyabra@gmail.com, a.fomin@escript.ru, art@amado-id.ru, lepon@bk.ru, timur.shulgin@infocraft.ru, zfalevich@gmail.com, sesyunin@realweb.ru, freesleeper@gmail.com, webar4i@gmail.com, marketolog@webelement.ru, dubnyak404@gmail.com, kropev@rarus.ru, snoorge@mail.ru, gotcha10@narod.ru, flyshtein@gmail.com, vladfedorovich@gmail.com, imickaa@gmail.com, sp.rusanov@gmail.com, mtsalka@scnsoft.com, didenko@braind.agency, natasha.skulskaia@gmail.com, admin@portix.ru, gfgaliya@gmail.com, enchervinskaya@gmail.com, redkuk@gmail.com, str-ibz@inbox.ru, temadorokhov@gmail.com, petrichv@gmail.com, dmytriy.suslov@gmail.com, a.dobrian@gmail.com, trjyfel@mail.ru, info@sibirix.ru, ek.design11@gmail.com, waximov@gmail.com, m.chelyadenkov@gmail.com, a.nikiforov@uplab.ru, feyorz@gmail.com, uasam@mail.ru, einzheev@itl.com.kz, o.tibirkova@yandex.ru, denisov.s.s@yandex.ru, dm.medv@gmail.com, gawanna.ru@mail.ru, maksimov.design@gmail.com, bez.b.unix@gmail.com, |
||||||
@ -0,0 +1,57 @@ |
|||||||
|
o.tibirkova@yandex.ru |
||||||
|
alexandersvinin@gmail.com |
||||||
|
nikonorov@labizum.ru |
||||||
|
timakova@fistashki.org |
||||||
|
sharapov.nail@gmail.com |
||||||
|
soldakov.p@yandex.ru |
||||||
|
ap@ds-p.ru |
||||||
|
j.tolkova@yandex.ru |
||||||
|
as.plyaskin@gmail.com |
||||||
|
person.ira@gmail.com |
||||||
|
o.tibirkova@yandex.ru |
||||||
|
alexandersvinin@gmail.com |
||||||
|
nikonorov@labizum.ru |
||||||
|
timakova@fistashki.org |
||||||
|
sharapov.nail@gmail.com |
||||||
|
soldakov.p@yandex.ru |
||||||
|
ap@ds-p.ru |
||||||
|
j.tolkova@yandex.ru |
||||||
|
as.plyaskin@gmail.com |
||||||
|
person.ira@gmail.com |
||||||
|
pyshenko@mail.ru |
||||||
|
ipev54@mail.ru |
||||||
|
r_dauranov@mail.ru |
||||||
|
didrojon@gmail.com |
||||||
|
vlad_rym@mail.ru |
||||||
|
levs01@mail.ru |
||||||
|
msvechnikova@mail.ru |
||||||
|
obraztsova.che@yandex.ru |
||||||
|
uraltux@gmail.com |
||||||
|
jsam1989@yandex.ru |
||||||
|
van_zoka@mail.ru |
||||||
|
grash25@mail.ru |
||||||
|
garaeff2006@yandex.ru |
||||||
|
ungern@nxt.ru |
||||||
|
lubka95@mail.ru |
||||||
|
pr-sido@yandex.ru |
||||||
|
o.tibirkova@yandex.ru |
||||||
|
alexandersvinin@gmail.com |
||||||
|
nikonorov@labizum.ru |
||||||
|
timakova@fistashki.org |
||||||
|
sharapov.nail@gmail.com |
||||||
|
soldakov.p@yandex.ru |
||||||
|
ap@ds-p.ru |
||||||
|
j.tolkova@yandex.ru |
||||||
|
as.plyaskin@gmail.com |
||||||
|
person.ira@gmail.com |
||||||
|
kikna@yandex.ru |
||||||
|
j.tolkova@yandex.ru |
||||||
|
soldakov.p@yandex.ru |
||||||
|
ap@ds-p.ru |
||||||
|
as.plyaskin@gmail.com |
||||||
|
timakova@fistashki.org |
||||||
|
nikonorov@labizum.ru |
||||||
|
o.tibirkova@yandex.ru |
||||||
|
person.ira@gmail.com |
||||||
|
alexandersvinin@gmail.com |
||||||
|
sharapov.nail@gmail.com |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
# 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 Lesson, Course |
||||||
|
|
||||||
|
for course in Course.objects.all(): |
||||||
|
print '{0} :{1}'.format(course.id, course) |
||||||
|
|
||||||
|
c = raw_input(u'CHOICE COURSE. 0 - EXIT: ') |
||||||
|
try: |
||||||
|
course = Course.objects.get(id=c) |
||||||
|
except Course.DoesNotExists: |
||||||
|
print u'Курс не найден' |
||||||
|
else: |
||||||
|
for lesson in Lesson.objects.filter(course=course).order_by('token'): |
||||||
|
if not lesson.video_id: |
||||||
|
print lesson |
||||||
|
result = raw_input(u'VIDEO ID VZAAR. 0 - NO CHANGE: ') |
||||||
|
print '==============' |
||||||
|
if result != 0: |
||||||
|
lesson.video_id = result |
||||||
|
lesson.video_date = datetime.datetime.now() |
||||||
|
lesson.save() |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
# 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 Lesson |
||||||
|
|
||||||
|
for lesson in Lesson.objects.exclude(video_id=None): |
||||||
|
lesson.video = '' |
||||||
|
lesson.save() |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
def test(a, b=50): |
||||||
|
print a |
||||||
|
print b |
||||||
|
return 1, 2 |
||||||
|
|
||||||
|
test(*test(10, 20)) |
||||||
|
|
||||||
|
raw_input('1') |
||||||
@ -0,0 +1,48 @@ |
|||||||
|
gawanna.ru@mail.ru |
||||||
|
tim.phey@gmail.com |
||||||
|
kittydiz@mail.ru |
||||||
|
maksimov.design@gmail.com |
||||||
|
katepainter@yandex.ru |
||||||
|
sasha_amelina@mail.ru |
||||||
|
snoorge@mail.ru |
||||||
|
mifwind@gmail.com |
||||||
|
artur.saakoff@gmail.com |
||||||
|
tagfelix500@gmail.com |
||||||
|
svelavs@gmail.com |
||||||
|
art@magicdesign.ru |
||||||
|
srfedotov@gmail.com |
||||||
|
o.tibirkova@yandex.ru |
||||||
|
aknoraz@deloitte.ru |
||||||
|
sesyunin@realweb.ru |
||||||
|
9330733@mail.ru |
||||||
|
danila.zarechnev@gmail.com |
||||||
|
egor@yugs.ru |
||||||
|
goha@kiosov.com |
||||||
|
Igorfedorenko@mail.ru |
||||||
|
es@vipro.ru |
||||||
|
soldakov.p@yandex.ru |
||||||
|
702752@gmail.com |
||||||
|
shpakova@sebbia.com |
||||||
|
taranov@sebbia.com |
||||||
|
rusakovevgen@gmail.com |
||||||
|
Alexpozdnyakof@gmail.com |
||||||
|
korobajr@ya.ru |
||||||
|
elizaveta.bandalet@gmail.com |
||||||
|
prokosha10@gmail.com |
||||||
|
salofoot@fermastudio.ru |
||||||
|
info@darneo.ru |
||||||
|
kayl24brof@gmail.com |
||||||
|
lens2002@gmail.com |
||||||
|
d22s@ya.ru |
||||||
|
masha49@yandex.ru |
||||||
|
biz.trp@gmail.com |
||||||
|
alexzarkov@gmail.com |
||||||
|
ekde@wide-web.spb.ru |
||||||
|
vemelin@gmail.com |
||||||
|
va@wearewowagency.com |
||||||
|
ad@wearewowagency.com |
||||||
|
st.wasp@yandex.ru |
||||||
|
albytime@gmail.com |
||||||
|
as.plyaskin@gmail.com |
||||||
|
trunovaon@gmail.com |
||||||
|
lemma.ka@gmail.com |
||||||
@ -0,0 +1,26 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
from django.core.files import File |
||||||
|
import datetime |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
from django.db.models import Q |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from courses.models import Diploma, User |
||||||
|
from journals.models import DiplomaJ |
||||||
|
|
||||||
|
for tm in DiplomaJ.objects.filter(Q(in_image=None)|Q(out_image=None)): |
||||||
|
if not tm.out_image or not tm.in_image: |
||||||
|
_in, _out = tm.draw_key(*tm.draw_name(*tm.draw_date())) |
||||||
|
if _in: |
||||||
|
_in = open(_in) |
||||||
|
tm.in_image.save(File(_in).name, File(_in), save=True) |
||||||
|
|
||||||
|
|
||||||
|
if _out: |
||||||
|
_out = open(_out) |
||||||
|
tm.out_image.save(File(_out).name, File(_out), save=True) |
||||||
@ -0,0 +1,27 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import hashlib |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from access.models import User |
||||||
|
from courses.models import Course |
||||||
|
from journals.models import TeacherJ |
||||||
|
from finance.models import Bill |
||||||
|
|
||||||
|
# Получить список почт тех, кто: |
||||||
|
# 1) Отплатил счет по курсу |
||||||
|
# 2) Не сдал еще ДЗ |
||||||
|
|
||||||
|
course = Course.objects.get(id=20) |
||||||
|
result = open('emails_ux.txt', 'w') |
||||||
|
for j in TeacherJ.objects.filter(course=course, teacher=None).exclude(student=None): |
||||||
|
if Bill.objects.filter(service__course=course, user=j.student, status='F').exists(): |
||||||
|
result.write(j.student.email) |
||||||
|
result.write(', ') |
||||||
|
|
||||||
|
result.close() |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import hashlib |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from access.models import User |
||||||
|
|
||||||
|
result = open('emails_md5.txt', 'w') |
||||||
|
for i in User.objects.filter(customer=True): |
||||||
|
result.write(hashlib.md5(i.email.encode('utf-8')).hexdigest()) |
||||||
|
result.write(', ') |
||||||
|
|
||||||
|
result.close() |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
# 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 access.models import User |
||||||
|
from django.db.models import Q |
||||||
|
date = datetime.datetime(2016, 03, 01) |
||||||
|
for user in User.objects.filter(Q(last_login__lte=date, is_active=True)|Q(last_login=None, is_active=True)): |
||||||
|
print user.email |
||||||
|
print User.objects.filter(Q(last_login__lte=date, is_active=True)|Q(last_login=None, is_active=True)).count() |
||||||
@ -0,0 +1,27 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import calendar |
||||||
|
import datetime |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from journals.models import get_active_tj_count, HomeworkJ |
||||||
|
from courses.models import Course |
||||||
|
|
||||||
|
for course in Course.objects.filter(public=True): |
||||||
|
print course.get_title() |
||||||
|
for teacher in course.teachers.exclude(email='t@lms.ru'): |
||||||
|
print u'{0}: {1}'.format(teacher.get_short_name(), get_active_tj_count(teacher)) |
||||||
|
print u'=================' |
||||||
|
|
||||||
|
for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]: |
||||||
|
now = datetime.date(2016, i, 1) |
||||||
|
print i |
||||||
|
print HomeworkJ.objects.filter(date__gte=datetime.datetime(now.year, now.month, 1), |
||||||
|
date__lte=datetime.datetime(now.year, now.month, calendar.mdays[i]), |
||||||
|
f_date__lte=datetime.datetime(now.year, now.month, calendar.mdays[i]), |
||||||
|
f_date__gte=datetime.datetime(now.year, now.month, 1)).count() |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
# 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 access.models import User |
||||||
|
from django.db.models import Q |
||||||
|
from finance.models import Bill |
||||||
|
date = datetime.datetime(2016, 03, 01) |
||||||
|
|
||||||
|
count = 0 |
||||||
|
|
||||||
|
|
||||||
|
def get_bills(user): |
||||||
|
for i in Bill.objects.filter(user=user, status='F'): |
||||||
|
print u'%s: %s' % (i.id, i.get_name()) |
||||||
|
global count |
||||||
|
count += 1 |
||||||
|
|
||||||
|
for user in User.objects.filter(is_active=True): |
||||||
|
if Bill.objects.filter(user=user, status='F').exists(): |
||||||
|
print u'' |
||||||
|
print u'====== %s:%s:%s ' % (user.id, user.email, user.get_short_name()) |
||||||
|
get_bills(user) |
||||||
|
print u'===========' |
||||||
|
|
||||||
|
print u'' |
||||||
|
print u'===========' |
||||||
|
print u'Всего: %s' % count |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
# 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 access.models import User |
||||||
|
from journals.models import TeacherJ |
||||||
|
from courses.models import Course |
||||||
|
|
||||||
|
for course in Course.objects.all(): |
||||||
|
for user in User.objects.all(): |
||||||
|
if user.date_joined.year == datetime.date.today().year and user.date_joined.year == datetime.date.today().month and user.date_joined.year == datetime.date.today().day: |
||||||
|
journals = TeacherJ.objects.filter(student=user, course=course) |
||||||
|
if journals.count() > 1: |
||||||
|
journals.last().delete() |
||||||
|
|
||||||
@ -0,0 +1,20 @@ |
|||||||
|
import os |
||||||
|
lines = list([i.strip() for i in open('users_base.txt').readlines()]) |
||||||
|
result = [] |
||||||
|
_exc = ['# 1', '# 2', '# 3', '# 4', '# 5', '# 6', '# 7', '# 8', '# 9', '# 10', '# 11', '# 12', '# 13', '# 14', '# 15', |
||||||
|
'# 16', '# 17', '# 18', '# 19', '# Web', '# Java', '# iOS', '# Excel'] |
||||||
|
|
||||||
|
for r in range(1, len(lines)): |
||||||
|
l = lines[-int(r)] |
||||||
|
if l not in result or l in _exc: |
||||||
|
result.append(l) |
||||||
|
|
||||||
|
|
||||||
|
f = open('users_base.txt', 'w') |
||||||
|
result.reverse() |
||||||
|
for line in result: |
||||||
|
line += '\n' |
||||||
|
if line in _exc: |
||||||
|
line += '\r' |
||||||
|
f.write(line) |
||||||
|
f.close() |
||||||
@ -0,0 +1,173 @@ |
|||||||
|
# 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() |
||||||
@ -0,0 +1 @@ |
|||||||
|
# Прочитать все записи |
||||||
@ -0,0 +1,3 @@ |
|||||||
|
# Excel |
||||||
|
# 18 |
||||||
|
root@codemy.ru;Сиглаев Сергей |
||||||
@ -0,0 +1,751 @@ |
|||||||
|
# Excel |
||||||
|
# 18 |
||||||
|
ssiglaev@mail.ru;Сиглаев Сергей |
||||||
|
ipev54@mail.ru;Евгений Ипатов |
||||||
|
# 36 |
||||||
|
# 37 |
||||||
|
Ekaterinageorgievna@ya.ru;Екатерина Рагозина |
||||||
|
KomarovaTaty@yandex.ru;Комарова Татьяна Николаевна |
||||||
|
# 38 |
||||||
|
gesko56@mail.ru;Геско Игорь |
||||||
|
# 39 |
||||||
|
pyshenko@mail.ru;Пушенко Сергей |
||||||
|
marina.opheim@gmail.com;Marina Opheim |
||||||
|
# 40 |
||||||
|
varavina@bk.ru;Лариса Варавина |
||||||
|
oreshko_pn@mail.ru;Орешко Петр Николаевич |
||||||
|
# 41 |
||||||
|
pavel-samocvetov@rambler.ru;Самоцветов Павел |
||||||
|
# Java |
||||||
|
# 19 |
||||||
|
elenagum@gmail.com;Elena Gumennikova |
||||||
|
koganovsky@yandex.ru;Дмитрий Когановский |
||||||
|
d.koganovsky@gmail.com;Дмитрий Когановский |
||||||
|
rybkina.ma@gmail.com;Рыбкина Марина |
||||||
|
gladiator.maksim1992@mail.ru;Козлов Максим |
||||||
|
uzor1@ukr.net;Андрей |
||||||
|
baktybekergabyl@gmail.com;Ергабыл Бактыбек |
||||||
|
pabls.web@gmail.com;Павел |
||||||
|
380734890630@yandex.ru;Обущак Сергей |
||||||
|
ipereyma@yandex.ru;igor` |
||||||
|
andr.bondaren@gmail.com;Андрей |
||||||
|
progres5@yandex.ru;Сергей Зовский |
||||||
|
raduga-k-klyuchi@mail.ru;Юлий |
||||||
|
vitaliyexplorer7@gmail.com;Виталий |
||||||
|
vitr@list.ru;Виталий Иванов |
||||||
|
rajnisk@hotmail.com;Людмила |
||||||
|
dmitry010581@yandex.ru;Тимофеев Дмитрий |
||||||
|
sak_aa@mail.ru;Сак Александр |
||||||
|
rapheroes@mail.ru;Корчагин Илья |
||||||
|
od_89@mail.ru;Олег |
||||||
|
duckart_av@mail.ru;Андрей |
||||||
|
dima-sit168@yandex.ru;Дмитрий |
||||||
|
klen2277@mail.ru;Евгений Каленов |
||||||
|
aleksey.elizaryev@gmail.com;Алексей |
||||||
|
c0x1ff6@yahoo.com;Александр |
||||||
|
Alexander5454@yandex.ru;Александер Чижиков |
||||||
|
msv1108@gmail.com;Станислав |
||||||
|
job.76@bk.ru;Сергей Снитко |
||||||
|
fan2pr@yandex.ru;Алексей |
||||||
|
didrojon@gmail.com;nic |
||||||
|
palik777@gmail.com;Pavel Minin |
||||||
|
ph.shamsiev@mail.ru;Филипп |
||||||
|
yuralet@mail.ru;Юрий |
||||||
|
tao981@rambler.ru;Виктор |
||||||
|
s_teplom@mail.ru;Екатерина Атаманчук |
||||||
|
total100@ya.ru;Валерий |
||||||
|
eshudanov@gmail.com;Ержан Шуданов |
||||||
|
mihajlovmv@yandex.ru;Михайлов Михаил |
||||||
|
manmg87@gmail.com;Дмитрий Гевейлер |
||||||
|
valery.remenyuk@rambler.ru;валерий ременюк |
||||||
|
ukhin.ag@gmail.com;Ухин Александр |
||||||
|
jamil2005.78@mail.ru;зумруд |
||||||
|
prusov1987@gmail.com;Андрей |
||||||
|
levin_aleksey@mail.ru;Алексей |
||||||
|
Roma.Korehov@yandex.ru;Роман Корехов |
||||||
|
aav-kerry@mail.ru;Алексей Архипов |
||||||
|
v_vyborg@rambler.ru;валерий ременюк |
||||||
|
etopist@outlook.com;Александр Забродин |
||||||
|
ne-devil@mail.ru;Дмитрий |
||||||
|
karakan77@yandex.ru;бахарев сергей |
||||||
|
pavel.anix@gmail.com;Токарев Павел Анатольевич |
||||||
|
bakeevsa@gmail.com;Станислав Бакеев |
||||||
|
remenyuk79@gmial.com;Ременюк Валерий |
||||||
|
iterus@rambler.ru;Khogoeva Tatiana |
||||||
|
sss-74@bk.ru;Сидоренко Сергей |
||||||
|
Abdimalik777@yandex.kz;Абдималик |
||||||
|
8student8@gmail.com;Владимир |
||||||
|
shevanov@gmail.com;Евгений Шеванов |
||||||
|
ekbpotok@gmail.com;Игорь |
||||||
|
copymi@gmail.com;Саша |
||||||
|
yurinbu@mail.ru;Бушенков Юрий |
||||||
|
r_dauranov@mail.ru;Ренат Дауранов |
||||||
|
Paa186@mail.ru;Алексей |
||||||
|
rabmit@yandex.ru;Ярослав Митин |
||||||
|
89091635474@mail.ru;Дудин Андрей |
||||||
|
adrianobuon@mail.ru;dmitriy |
||||||
|
danikanisa@gmail.com;Давид |
||||||
|
allanoy@yandex.ru;Alla |
||||||
|
# 20 |
||||||
|
PREYZON@mail.ru;Кирилл |
||||||
|
ponamarev_89@bk.ru;Юрий |
||||||
|
Pvlniko@gmail.com;Павел |
||||||
|
sergeioff@mail.ru;Сергей Погорелов |
||||||
|
Instinct975@gmail.com;Илья |
||||||
|
nikulinag@gmail.com;Андрей Никулин |
||||||
|
e.b.j_99@mail.ru;Baktybek |
||||||
|
supana1976@gmail.com;Павел |
||||||
|
ipereyma@yandex.ru;игорь |
||||||
|
kvasha.oleg1962@gmail.com;Квашин Олег Леонидович |
||||||
|
epolshakova@ya.ru;Екатерина |
||||||
|
d.koganovsky@gmail.com;Дмитрий |
||||||
|
didrojon@gmail.com;2урок |
||||||
|
job.76@bk.ru;Сергей |
||||||
|
my.777@mail.ru;Екатерина |
||||||
|
dvinnik@yahoo.com;deividas vinnik |
||||||
|
vlad_rym@mail.ru;Влад Римский |
||||||
|
nils1968@gmail.com;Виктор |
||||||
|
an_var@smtp.ru;Вараксин Андрей |
||||||
|
maxrusgm@yandex.ru;Максим |
||||||
|
dimkut@bk.ru;Кутный Дмитрий |
||||||
|
mity282@gmail.com;Макаров Дмитрий |
||||||
|
infdev@yandex.ru;Казинская Надежда |
||||||
|
yakovbeng@gmail.com;Николай |
||||||
|
zulkarnaev_sergei@mail.ru;Сергей |
||||||
|
natzero@mail.ru;Головков Сергей |
||||||
|
mysample@rambler.ru;Магазеев Александр |
||||||
|
igor_kravchenko@live.ru;Игорь |
||||||
|
kudriashov.art@yandex.ru;Артемий |
||||||
|
chitinski86@gmail.com;Антон |
||||||
|
cut-throat2008@yandex.ru;Филипп Кузнецов |
||||||
|
ilya_korchagin_90@mail.ru;Корчагин Илья |
||||||
|
Kerby@inbox.ru;Андрей |
||||||
|
evg2369@yandex.ru;Евгений Похожаев |
||||||
|
bele.niente@gmail.com;Светлана Грибанова |
||||||
|
input_chet@rambler.ru;Евгений Мосияченко |
||||||
|
smirnovm84@gmail.com;Смирнов Михаил Сергеевич |
||||||
|
appppppple@gmail.com;Александр |
||||||
|
zoom-zoom555@mail.ru;Ирина |
||||||
|
wirelines@yandex.ru;Бикчентаев Шамиль |
||||||
|
ulitinigor@yandex.ru;Игорь |
||||||
|
ivan@mymediagroup.ru;Иван |
||||||
|
vetarak@gmail.com;Дмитрий Каратеев |
||||||
|
aptem240@mail.ru;Кирпичев Артем |
||||||
|
jnss2013ks@gmail.com;Евгения Ступникова |
||||||
|
vadmirr@yandex.ru;Вадим Mугинов |
||||||
|
artemshchurev@gmail.com;Щурев Артем |
||||||
|
w3orks@mail.ru;Станислав |
||||||
|
# 21 |
||||||
|
gordjelin14@gmail.com;Антон |
||||||
|
yungamm@yandex.ru;Андрей |
||||||
|
iglatypov2010@yandex.ru;Ильнур |
||||||
|
all4me4@gmail.com;Александр Петров |
||||||
|
kardv@yandex.ru;Владимир Кардашин |
||||||
|
ffiirreeffooxx@gmail.com;Иванников Игорь Александрович |
||||||
|
alex-bedev@ozero.net;Александр Соколов |
||||||
|
phantomx@yandex.ru;Андрей |
||||||
|
step1383@gmail.com;Дмитрий Степанов |
||||||
|
svettlantik@rambler.ru;Svetlana Telepina |
||||||
|
rivo551@rambler.ru;Татьяна |
||||||
|
istubb@me.com;Андрей Приходько |
||||||
|
4-mi@bk.ru;Андрей |
||||||
|
aleks_mihalev@list.ru;Алексей Михалев |
||||||
|
mbk_88@mail.ru;Болат |
||||||
|
vladejkee@gmail.com;Владислав |
||||||
|
stalevs@gmail.com;Станислав |
||||||
|
cesc0717@gmail.com;Антон Говоров |
||||||
|
asavlukov@maxus.ru;Александр |
||||||
|
omegaprime@live.ru;Дмитрий |
||||||
|
ushac@mail.ru;Алексей |
||||||
|
lena_as_sister@mail.ru;Тюнина Елена |
||||||
|
valorml@gmail.com;Вячеслав |
||||||
|
albert@gestiv.ru;Альберт |
||||||
|
baktybekergabyl@gmail.com;Baktybek |
||||||
|
jys.naturoil@yandex.ru;Сабельникова Юлия |
||||||
|
at_alex@bk.ru;Алексей |
||||||
|
mb2043@yandex.ru;Василий |
||||||
|
igrix@mail.ru;Погодин Игорь |
||||||
|
klaus_83@mail.ru;Павел Афанасьев |
||||||
|
rsbk73@gmail.com;Андрей |
||||||
|
palik777@gmail.com;Павел Минин |
||||||
|
novosib_2009@mail.ru;Алексей |
||||||
|
varaksinandrey@yandex.ru;Андрей |
||||||
|
romik1985@gmail.com;Роман |
||||||
|
dymov33@ya.ru;Эльмар Мирзабаев |
||||||
|
ksd921020@yandex.ru;Сергей |
||||||
|
symchuk.andriy@gmail.com;Сымчук Андрей |
||||||
|
n-samoilov@mail.ru;Никита |
||||||
|
urself2015@yandex.ru;Алексеенко Юрий |
||||||
|
zshoo@mail.ru;Заурбек |
||||||
|
infiniticiti@gmail.com;Oleg Chernivetsky |
||||||
|
e.p.aleksandrov@yandex.ru;Евгений |
||||||
|
abulhanof@yandex.kz;Шаукат |
||||||
|
levis84@mail.ru;Виктор |
||||||
|
kochevnik01@mail.ru;Павел |
||||||
|
mara-777@bk.ru;Tamara |
||||||
|
algamazov@yandex.ru;Александр Гамазов |
||||||
|
a.kyrov@gmail.com;Кыров Андрей |
||||||
|
remenyuk79@gmail.com;Ременюк Валерий |
||||||
|
mirik49@yandex.ru;Иван Белоусов |
||||||
|
yorv@mail.ru;Иван |
||||||
|
coldinc@rambler.ru;Иван |
||||||
|
alp1@list.ru;Владимир Полинский |
||||||
|
ld1995@tut.by;Леонид |
||||||
|
midda7@mail.ru;Антон |
||||||
|
# 22 |
||||||
|
la-verne@mail.ru;Иван Фомин |
||||||
|
safarov-ar@yandex.ru;Сафаров Алексей Расимович |
||||||
|
kimonnick@mail.ru;Александр |
||||||
|
madinaxyt@mail.ru;Мадина |
||||||
|
iglatypov2010@yandex.ru;Латыпов Ильнур |
||||||
|
krrera@mail.ru;Арсен |
||||||
|
jackf31@mail.ru;Игорь |
||||||
|
alexz1983@mail.ru;Захаров Александр |
||||||
|
netbooks@mail.ru;Геннадий |
||||||
|
ShoarR@gmail.com;Ульяна Джумок |
||||||
|
mad-dimon@mail.ru;Дмитрий |
||||||
|
dmitriy.mosolov@gmail.com;Дмитрий Мосолов |
||||||
|
pabls@yandex.ru;Павел |
||||||
|
sergey@794979.ru;Сергей |
||||||
|
Elvis97rus@gmail.com;Артем |
||||||
|
cprof777@gmail.com;Алексей Язьков |
||||||
|
aeugeniy@gmail.com;Евгений |
||||||
|
soft-bi@mail.ru;Сергей |
||||||
|
pverbatim@mail.ru;Петр Андреев |
||||||
|
alex@titul-spb.ru;Александр Целищев |
||||||
|
asavlukov@maxus.ru;Саша |
||||||
|
cyberfancool@yandex.ru;Виталий |
||||||
|
zamaev.aydrus@yandex.ru;Айдрус |
||||||
|
edwd.mkrv@gmail.com;Эдуард Макаров |
||||||
|
brmoney@ya.ru;Сергей |
||||||
|
# 23 |
||||||
|
chabakvolodya@gmail.com;Володимир |
||||||
|
grandger@mail.ru;Степанов Александр |
||||||
|
ma1m2@mail.ru;Светлана Мажайкина |
||||||
|
madinaxyt@mail.ru;Мдина |
||||||
|
rm7m@mail.ru;Виталий Дорофеев |
||||||
|
andrey.poprotsky@gmail.com;Андрей |
||||||
|
public-mail@mail.ru;Тураев Константин |
||||||
|
diadiasash@mail.ru;Александр |
||||||
|
makoron@mail.ru;Евгений Тимофеев |
||||||
|
oglekler@gmail.com;Глеклер Ольга |
||||||
|
mbr0969@gmail.com;Михаил |
||||||
|
nvladislavn@gmail.com;Нечаев Владислав |
||||||
|
vilislac@gmail.com;Григорий |
||||||
|
alion.dim@yandex.ru;Людмила |
||||||
|
mansur.by@gmail.com;Abilmansur |
||||||
|
aspushkin2395@gmail.com;Кирилл |
||||||
|
Assarkhaddon@gmail.com;Чупов Александр |
||||||
|
i.zaria@yandex.ru;Игорь |
||||||
|
pushkinan@yandex.ru;Александр |
||||||
|
tsarevvs@bk.ru;Владимир |
||||||
|
dmitry.mamonov@gmail.com;Дмитрий Мамонов |
||||||
|
avduckart@gmail.com;Дукарт Андрей |
||||||
|
kgv63@mail.ru;Геннадий |
||||||
|
infdev@yandex.ru;Надежда |
||||||
|
mail4bsf@gmail.com;Станислав Быльченко |
||||||
|
svirepyi@mail.ru;Вадим Измайлов |
||||||
|
# 24 |
||||||
|
texcomvit@gmail.com;Виталий |
||||||
|
alekskolr@gmail.com;Алексей |
||||||
|
d77dk@mail.ru;Дмитрий |
||||||
|
mas.proekt@mail.ru;Маслёнок Андрей |
||||||
|
prusove@gmail.com;Евгений |
||||||
|
misha41192@mail.ru;Михаил Скафенко |
||||||
|
sglvzom@gmail.com;Николай |
||||||
|
# 26 |
||||||
|
malov.alexsander@yandex.ru;Александр |
||||||
|
9284330043@mail.ru;Дмитрий |
||||||
|
baltport@mail.ru;Илья Агафонов |
||||||
|
kaa-work@yandex.ru;Антон |
||||||
|
alex.v.andreev@gmail.com;Александр Васильевич Андреев |
||||||
|
kutsko.v.v@yandex.ru;Василий |
||||||
|
# iOS |
||||||
|
# 43 |
||||||
|
ivan.infbez@yandex.ru;Иван |
||||||
|
igor.dyachkov89@gmail.om;Игорь |
||||||
|
iyaroslav@yandex.ru;Ярослав |
||||||
|
meres28032000@gmail.com;Евгений |
||||||
|
malenkaya.grafinya@mail.ru;Mikhaylova Lyubov |
||||||
|
# 44 |
||||||
|
2909763@gmail.com;Михаил Палкин |
||||||
|
bayaliev.mar@yandex.ru;Мар |
||||||
|
rozental.igor@gmail.com;Игорь Розенталь |
||||||
|
for_new_job@bk.ru;Абрамян Сергей |
||||||
|
Malkolm063@yandex.ru;Андрей |
||||||
|
# 45 |
||||||
|
mail@greatcoach.ru;Денис |
||||||
|
paveldance@mail.ru;павел лонкин |
||||||
|
tsomuk@yandex.ru;Никита |
||||||
|
bayaliev.mar@yandex.ru;Mar |
||||||
|
19871010@mail.ru;Мкртумян Нарек |
||||||
|
oleg@pendurov.com;Олег Пендуров |
||||||
|
dan98l@mail.ru;Даниил Голубятников |
||||||
|
diroy1287@gmail.com;Егор |
||||||
|
for_new_job@bk.ru;Сергей Абрамян |
||||||
|
zopa_gopa@mail.ru;Ренат |
||||||
|
# 46 |
||||||
|
bogdanofandrey@gmail.com;Андрей |
||||||
|
malkolm063@yandex.ru;Андрей |
||||||
|
arzt2001@mail.ru;Михаил Смолиговец |
||||||
|
stas_shoshkin@rambler.ru;Шошкин Станислав |
||||||
|
AnatoliiAndreev19@gmail.com;Анатолий |
||||||
|
dmitry@senashenko.ru;Дмитрий Сенашенко |
||||||
|
# 47 |
||||||
|
za-alex@yandex.ru;Алексей |
||||||
|
wins00k@gmail.com;Андрей Тищенко |
||||||
|
bubnyshev@lanit.ru;Бубнышев Сергей |
||||||
|
# 48 |
||||||
|
o.kubyshkin@gmail.com;Олег |
||||||
|
gkrasnoshlyk@gmail.com;Геннадий |
||||||
|
asylbekzhardekov@gmail.com;Асылбек |
||||||
|
# 50 |
||||||
|
alexeyra2010@gmail.com;Alexey Redkin |
||||||
|
roman@proskurnin.ru;Роман Проскурнин |
||||||
|
madjaw@mail.ru;Андрей |
||||||
|
rozental.igor@gmail.com;Игорь |
||||||
|
skripkin2410@gmail.com;Дмитрий |
||||||
|
# 51 |
||||||
|
artbataev@gmail.com;Владимир |
||||||
|
nns7@inbox.ru;Nikolay |
||||||
|
# Web |
||||||
|
# 1 |
||||||
|
jeged22@gmail.com;Виталий |
||||||
|
secalol@gmail.com;ТЕСТ |
||||||
|
8wicx@msgos.com;testJC |
||||||
|
vlyagusha@justclick.ru;Вячеслав |
||||||
|
dvsvaran@mail.ru;Виталий |
||||||
|
mainfilter@ya.ru;Сергей |
||||||
|
polkovnik51@vail.ru;Владимир |
||||||
|
nivshina@mail.ru;Анастасия Ившина |
||||||
|
aksay_sayt@mail.ru;Татьяна Велмакина |
||||||
|
nserogoskaya@bk.ru;Серогодская Н. |
||||||
|
nestetion@ya.ru;Анастасия |
||||||
|
afeldus@mail.ru;Anatoly Feldman |
||||||
|
test@test.ru;тест |
||||||
|
alexeidavljatov3@mail.ru;алексей |
||||||
|
kazzak2008@rambler.ru;задание №1 Алексей Казаков |
||||||
|
alvk3@yandex.ru;Алексей Кочанов |
||||||
|
vgric@mail.ru;Виктория Гриценко |
||||||
|
opti72@ukr.net;Александр |
||||||
|
deltaz1@mail.ru;Николай Матюшов |
||||||
|
mari.kravchuk78@mail.ru;Мария Кравчук |
||||||
|
apishvanov@gmail.com;Александр Пишванов |
||||||
|
233868@gmail.com;Николай |
||||||
|
yoga@satvasamui.com;Черемикин Александр |
||||||
|
edwardb@ngs.ru;Эдуцард Бурлаков |
||||||
|
vip.alex113@mail.ru;Александр Андросов |
||||||
|
vre@mail.ru;Kalinin |
||||||
|
aivis@ukr.net;Щербаков Роман |
||||||
|
nadvas0910@gmail.com;Nadezda |
||||||
|
teamaks@mail.ru;Maksym |
||||||
|
tyapushkina1976@gmail.com;Светлана |
||||||
|
dmn@isida.com.ru;Димитрий Милакин |
||||||
|
sadness.sv@gmail.com;Vyacheslav |
||||||
|
d6232@bugmir.net;Дмитрий Теслюк |
||||||
|
Gralle@yandex.ru;Инна Овчинникова |
||||||
|
yusupowa.alfia2017@yandex.ru;Альфия Юсупова |
||||||
|
homevent@gmail.com;Константин Черепанов |
||||||
|
skop.1984@mail.ru;Юлия |
||||||
|
ekarniymamay@mil.ru;Анастасия |
||||||
|
p_orlov@list.ru;Pavel Orlov |
||||||
|
tehfoxen@yandex.ru;Алехина Татьяна |
||||||
|
sveta250694@mail.ru;Светлана Спорынина |
||||||
|
shevchuka@gmail.com;Алексей |
||||||
|
zhuklevich87@gmail.com;Stanislav Zhuklevich |
||||||
|
karpov.g777@mail.ru;Карпов Евгений |
||||||
|
gnk413666@yandex.ru;Алексей Щукин |
||||||
|
a.rassmagin@mail.ru;Алексей |
||||||
|
pyosha@yandex.ru;Коваленко Наталья |
||||||
|
adik69@list.ru;Алексанр Адеев |
||||||
|
# 2 |
||||||
|
gotcha10@yandex.ru;Андрей |
||||||
|
saliq.ilshat@gmail.com;Ильшат |
||||||
|
gyrka@yandex.ru;Андрей Гирка |
||||||
|
evgwar@yandex.ru;Евгений |
||||||
|
veneta83@inbox.ru;Венета |
||||||
|
optimizup@yandex.ru;Роман Марков |
||||||
|
alexeidavljatov3@mail.ru;алексей давлятов |
||||||
|
kazzak2008@rambler.ru;задание №2 Алексей Казаков |
||||||
|
unitbox@mail.ru;Бобух Эдуард |
||||||
|
martaw75@mail.ru;Мартыненко Анна |
||||||
|
k.erofeew@gmail.com;Кирилл Ерофеев |
||||||
|
ksenija.petriv@gmail.com;Ksenia |
||||||
|
belokrylov.al@mail.ru;Алексей |
||||||
|
strekozec12@gmail.com;Алексей |
||||||
|
ua67850@yandex.ru;алексей |
||||||
|
Ft_inferno@mail.ru;Евгений |
||||||
|
Umi-chan_1992@mail.ru;Марина Куксова |
||||||
|
vanologvin@gmail.com;Иван |
||||||
|
sirius1991dav_asa@mail.ru;Анастасия Дойникова |
||||||
|
akaymanov@yandex.ru;Андрей Кайманов |
||||||
|
ghoul666@gmail.com;Дмитрий Алексеенко |
||||||
|
# 3 |
||||||
|
MAXYTA22@yandex.ru;Ирина |
||||||
|
yandexru@icloud.com;Олег |
||||||
|
lexinfox@mail.ru;Алексей Анциферов |
||||||
|
denis3753@yandex.ru;Денис |
||||||
|
kazzak2008@rambler.ru;задание №3 Алексей Казаков |
||||||
|
mikhail_efimov@mail.ru;Михаил Ефимов |
||||||
|
insait07@mail.ru;Багаутдинов Сергей |
||||||
|
igorkudenko1@gmail.com;Игорь Куденко |
||||||
|
bb-klub@mail.ru;Алексей Федотов |
||||||
|
aleksandr-a-2014@mail.ru;Алексей Федотов |
||||||
|
maruta-danil@mail.ru;Марута Даниил |
||||||
|
otdeda@gmail.com;Федор Усков |
||||||
|
lev0315@mail.ru;Лев Каменев |
||||||
|
dsolomennikova@gmail.com;Daria Solomennikova |
||||||
|
# 4 |
||||||
|
lanarich@mail.ru;Касьянова Руслана |
||||||
|
strategybz@mail.ru;Александр |
||||||
|
kazzak2008@rambler.ru;задание №4 Алексей Казаков |
||||||
|
a.v.kurlovich@gmail.com;Александр |
||||||
|
hotmustang@mail.ru;Лебедь Алексей |
||||||
|
sovalianna@gmail.com;Natalia Nosanova |
||||||
|
mislavsky@yandex.ru;Максим Миславский |
||||||
|
adrinalin17@yandex.ru;Сергей |
||||||
|
trippleyes@gmail.com;Roman Izotov |
||||||
|
sj22@ya.ru;Ольга Белова |
||||||
|
Alexander97@inbox.ru;Александр |
||||||
|
elena_polyakova84@mail.ru;Полякова Елена |
||||||
|
nagval07@mail.ru;Сергей |
||||||
|
# 5 |
||||||
|
bestway305@yandex.ru;Артур |
||||||
|
obraztsova.che@yandex.ru;Екатерина |
||||||
|
filchenkov.dima@mail.ru;Дмитрий |
||||||
|
wkmstr@mail.ru;Мераб |
||||||
|
olgeraski@gmail.com;Ольга Гераськина |
||||||
|
skorshuns@mail.ru;Сергей |
||||||
|
vorona_1992@bk.ru;Валерия |
||||||
|
0964600@gmail.com;Oksana Popova |
||||||
|
servaredecaelo@gmail.com;Алина Гайбель |
||||||
|
t.natalia_66@mail.ru;Мади |
||||||
|
vikraokna@gmail.com;Дмитрий |
||||||
|
a05@list.ru;Углев Владимир |
||||||
|
vlg81@mail.ru;Галашев Вадим |
||||||
|
manamaha@mail.ru;Николай Дёров |
||||||
|
tusrb@mail.ru;Тарасов Иван Григорьевич |
||||||
|
gnatenko.pavel@gmail.com;Павел Гнатенко |
||||||
|
Serenya21@yandex.ru;Сергей |
||||||
|
o.lif@gmx.de;Olena Lif |
||||||
|
kazzak2008@rambler.ru;задание №5 Алексей Казаков |
||||||
|
nabelka@ya.ru;Ната |
||||||
|
o.gricenko@yandex.ru;Олег |
||||||
|
alpe@b2bresearch.com;Александр Петросян |
||||||
|
79296628851@yandex.ru;Дмитрий |
||||||
|
creps92@yandex.ru;Максим Гамаюнов |
||||||
|
vitaliy.a.2015@mail.ru;Виталий Анищенко |
||||||
|
videograf2007@yandex.ru;Андрей |
||||||
|
web-school-voicehovich@yandex.ru;Михаил Войцехович |
||||||
|
tyapushkina1976@gmail.com;Светлана Cмирнова |
||||||
|
Ddinamit.i@gmail.com;Илья Облогин |
||||||
|
yusupova.alfia2014@yandex.ru;Альфия Юсупова |
||||||
|
evgenia_litvina@mail.ru;Евгения Литвина |
||||||
|
npg2009@rambler.ru;Павло Галамейко |
||||||
|
julia210384otto@yandex.ru;Юлия Ванина |
||||||
|
# 6 |
||||||
|
igorevich70@gmail.com;Игорь |
||||||
|
alberto.man@mail.ru;Альберт |
||||||
|
espoirquebec@gmail.com;Мария Кравчук |
||||||
|
d.work2011@yandex.ru;Светлана |
||||||
|
indrs@rambler.ru;Сергей |
||||||
|
VIP-Dantist@yandex.ru;Вячеслав |
||||||
|
vufer@inbox.ru;Сурен Вердиян |
||||||
|
acvyatin@mail.ru;Александр |
||||||
|
pavel.bosko@gmail.com;Павел |
||||||
|
carrera91167@inbox.ru;Елена |
||||||
|
otik_kurdgelia@mail.ru;инна |
||||||
|
markovskaya_88@mail.ru;Наталья |
||||||
|
rorbah91@yandex.ru;Рорбах Олег |
||||||
|
nestetion@yandex.ru;Анастасия |
||||||
|
Kasyan12@mail.ru;Касьянов Александр |
||||||
|
undead.koroleva2012@yandex.ru;Юлия |
||||||
|
uvladz@gmail.com;Влад Ущаповский |
||||||
|
deniskhig@yandex.ru;Денис |
||||||
|
avkan@meta.ua;Андрей Кандыба |
||||||
|
dine77e@gmail.com;Роман |
||||||
|
romanov.hk@gmail.com;Илья |
||||||
|
kazzak2008@rambler.ru;задание №6 Алексей Казаков |
||||||
|
anik4366@mail.ru;Анна Борисенко |
||||||
|
fom_iv@list.ru;Игорь Фоменко |
||||||
|
gak.anya@mail.ru;Ашатhttp://payment.mokselle.ru/training/file/t0vxFP7PL88KC7I50Ij7cROqIuF47J4l/ |
||||||
|
katerium@mail.ru;Екатерина |
||||||
|
barchakov@gmail.com;Берс |
||||||
|
elabuga-dar@yandex.ru;Ольга Шапоренко |
||||||
|
konstantinov2006@yandex.ru;Константинов Евгений |
||||||
|
elgus2007@yandex.ru;Гусельников Сергей |
||||||
|
stacyinner@gmail.com;Анастасия Сергейчук |
||||||
|
ansierra@mail.ru;Анна Губарева |
||||||
|
ivan_smelkov@mail.ru;Иван |
||||||
|
ahnuria@mail.ru;Нурия |
||||||
|
edwardb@ngs.ru;Эдуард Бурлаков |
||||||
|
kvon@list.ru;Ольга Колодкина |
||||||
|
baigulova.indira@bk.ru;Индира Байгулова |
||||||
|
codemaster74@mail.ru;Марат Абдуллин |
||||||
|
naurale@yandex.ru;Илья |
||||||
|
kvn0910@yandex.ru;Nadezda |
||||||
|
idval@imedia.ru;Валерий |
||||||
|
lapinanatalya@mail.ru;Наталья |
||||||
|
vktmb@mail.ru;Валерий Каныгин |
||||||
|
harleyhp@mail.ru;Александр |
||||||
|
olypash-alians@yandex.ru;Ольга Пашкова |
||||||
|
# 7 |
||||||
|
pugachiov.serezha@yandex.ru;сергей |
||||||
|
danil.kdo1@gmail.com;Даниил |
||||||
|
vladsemuk@gmail.com;Владислав |
||||||
|
remikont@inbox.ru;Михаил |
||||||
|
torgbuk@mail.ru;Hromenko Nikolay |
||||||
|
mainfilter@yandex.ru;Сергей |
||||||
|
m.b.oper@Gmail.com;Кирилл |
||||||
|
sheniachiglazki@gmail.com;Филь Юлия |
||||||
|
A.MAILME@YANDEX.RU;Александра Скобелева |
||||||
|
9186532244@mail.ru;Кирилл Воронков |
||||||
|
s.s.shuvalova@gmail.com;Светлана Шувалова |
||||||
|
igor.kiyashchenko@mail.ru;Игорь Киященко |
||||||
|
shaspir@mail.ru;Хоха Илья |
||||||
|
alxsrtv@gmail.com;Александр |
||||||
|
newstas11@mail.ru;Станислав |
||||||
|
turist2015@ya.ru;Артем |
||||||
|
ks2007a@yandex.ru;Константин |
||||||
|
evseev@dubna.ru;Юрий Евсеев |
||||||
|
biznice@yandex.ru;Леонид |
||||||
|
galapub@ya.ru;Галина Бутенко |
||||||
|
artis72@ya.ru;Артем Исаев |
||||||
|
petrsushko@mail.ru;Петр Сушко |
||||||
|
amberleyley@gmail.com;Софья Прокофьева |
||||||
|
vlkuprianov@gmail.com;Владимир Куприянов |
||||||
|
akoziy@ya.ru;Андрей Козий |
||||||
|
komichok@mail.ru;Андрей Комаров |
||||||
|
andreidem4enko@yandex.ru;Демченко Андрей |
||||||
|
Germanjuk-artm@rambler.ru;Артём Германюк |
||||||
|
# 8 |
||||||
|
igorevich70@gmail.com;Игорь Чуркин |
||||||
|
romankox1973@gmail.com;Роман |
||||||
|
a.silyaev@yandex.ru;Анвер Силяев |
||||||
|
okonogray@yahoo.com;Олеся Конограй |
||||||
|
sekvenseralex@mail.ru;Вдовин Алексей Сергеевич |
||||||
|
lrv92@mail.ru;Лукьянов Роман |
||||||
|
galkov@mokselle.com;Максим |
||||||
|
skostin@mail.ru;Сергей Костин |
||||||
|
pashtynov@mail.ru;Дмитрий Паштынов |
||||||
|
korovina_natasha@mail.ru;Наталья Коровина |
||||||
|
rkrivtsov@gmail.com;Роман Кривцов |
||||||
|
gp@bipon.ru;Геннадий |
||||||
|
gabeda@yandex.ru;Юлия Габеда |
||||||
|
d.tiganov@yandex.ru;Дмитрий Тиганов |
||||||
|
sokol-judo92@mail.ru;Кирилл Соколов |
||||||
|
bet-ekaterina@mail.ru;Бетина Екатерина |
||||||
|
vasiliy.moiseenko.64@mail.ru;Василий Моисеенко |
||||||
|
teacoffee@i.ua;Максим |
||||||
|
geogrii-cobolev@mail.ru;Юрий Соболев |
||||||
|
svtbiz@inbox.ru;Светлана Титова |
||||||
|
promenergo.ch@gmail.com;Андрей Медведев |
||||||
|
# 9 |
||||||
|
PhilatovEvgeny@mail.ru;Евгений Филатов |
||||||
|
strix1985@mail.ru;Анна |
||||||
|
k.rachimov@mail.ru;Кирилл Рахимов |
||||||
|
nastusha1995is@gmail.com;Анастасия |
||||||
|
IVTsygankov@gmail.com;Иван |
||||||
|
bkr1@yandex.ru;Карэн |
||||||
|
mobils100@yandex.ru;Максим Сурков |
||||||
|
ganin-va@yandex.ru;Василий Ганин |
||||||
|
iborzik@gmail.com;Ирина Борзик |
||||||
|
romagrog@gmail.com;Роман |
||||||
|
regione-2000@ya.ru;Калугина Ольга Анатольевна |
||||||
|
megafabr@yandex.ru;Николай Беляев |
||||||
|
vladvolod@yandex.ru;Владислав Володин |
||||||
|
tsvetkovaai@yandex.ru;Цветкова Анна |
||||||
|
qman_2@mail.ru;Василий Вдовин |
||||||
|
Dron84@gmail.com;Андрей Шарунов |
||||||
|
nikitakozh@ukr.net;Кожевников Никита |
||||||
|
polikor-n@yandex.ru;Олег Радаев |
||||||
|
euro2@yandex.ru;Александр Блохинов |
||||||
|
dron_andr_2007@mail.ru;Анлрей |
||||||
|
tatyana.best@list.ru;Татьяна Авдеева |
||||||
|
# 10 |
||||||
|
anton.alyoshin@hotmail.com;Антон Алешин |
||||||
|
artem.panteleev@aol.com;Артём |
||||||
|
strig_elena@mail.ru;Новикова Елена Владимировна |
||||||
|
djsergeykovanin@mail.ru;Кованин Сергей |
||||||
|
kviva@yandex.ru;Виктор |
||||||
|
Evgeni2007@yandex.ru;Евгений |
||||||
|
afonin123@bk.ru;Александр |
||||||
|
chel200807@yandex.ru;Анатолий Емельянов |
||||||
|
pipopka@bk.ru;Тепляшина Евгения Сергеевна |
||||||
|
green2536@yandex.ru;Сергей |
||||||
|
dmitriylarin@bk.ru;Дмитрий Ларин |
||||||
|
ziv1@yandex.ru;Игорь Золотарев |
||||||
|
sheptun_marina@mail.ru;Marina Ovchinnikova |
||||||
|
sveta.utemova@bk.ru;Света |
||||||
|
ann_posh@rambler.ru;Анна Сысоева |
||||||
|
edwardb@mail.ru;Эдуард Бурлаков |
||||||
|
valero_sv@mail.ru;Валерий Сорока |
||||||
|
artsfabrica@gmail.com;Игорь Донцов |
||||||
|
# 11 |
||||||
|
5001010@bk.ru;Шемет Дмитрий |
||||||
|
lexx59@gmail.com;Александр Пленкин |
||||||
|
irina.kisik@gmail.com;Ирина |
||||||
|
okislyakov@gmail.com;Олег Кисляков |
||||||
|
julia_dea@mail.ru;Юлия Белоусова |
||||||
|
adastra.m@yandex.ru;Мокрушин Вячеслав |
||||||
|
Usov_88@mail.ru;Сергей |
||||||
|
lipsuke@mac.com;Дмитрий Фадеев |
||||||
|
andrey777@maryno.net;Улякин Андрей Юрьевич |
||||||
|
p0v13@mail.ru;Павел Погодин |
||||||
|
kindaleks@gmail.com;Алексей |
||||||
|
ngpk_lysenko@mail.ru;Виталий Лысенко |
||||||
|
anika2006@yandex.ru;Алексей Аникин |
||||||
|
zel-mirra@bk.ru;Вадим |
||||||
|
office@eskd72.ru;Дмитрий |
||||||
|
peters2004@yandex.ru;Соловьёв Пётр |
||||||
|
# 12 |
||||||
|
iguar.k@ya.ru;Игорь Кузнецов |
||||||
|
hakimov65@inbox.ru;Ринат |
||||||
|
Yuriy1357@mail.ru;Юрий |
||||||
|
1ckaz@mail.ru;Асет |
||||||
|
felix.80808@mail.ru;Евгений |
||||||
|
maks2546@mail.ru;Максим |
||||||
|
zefaa@mail.ru;Елена Зинченко |
||||||
|
sokol4eg@mail.ru;Михаил Соколов |
||||||
|
artur.mandrich.99@mail.ru;Мандрич Артур |
||||||
|
yglazy@mail.ru;Юрий |
||||||
|
sanzhiku@gmail.com;Sanzhar Urazaliyev |
||||||
|
# 13 |
||||||
|
kira09051987@mail.ru;Гузель |
||||||
|
9713943@mail.ru;Леонид |
||||||
|
kuznetsovaelena1@mail.ru;Кузнецова Елена |
||||||
|
savax@rambler.ru;Дмитрий Савченко |
||||||
|
aksay_sayt@mail.ru;Татьяна Вельмакина |
||||||
|
vic.bandura@yandex.ru;Виктор Бандура |
||||||
|
itshepard57574@gmail.com;Руслан |
||||||
|
senior.perfiliew@ya.ru;Иван Перфильев |
||||||
|
terraincod@gmail.com;Сергей |
||||||
|
galyna.pon@gmail.com;Galina Ponomarenko |
||||||
|
polet2107@ya.ru;Вадим |
||||||
|
vavilov_alex@mail.ru;alex |
||||||
|
# 14 |
||||||
|
edwantoshin@rambler.ru;Эдуард Антошин |
||||||
|
niki-1@yandex.ru;Сачков Денис |
||||||
|
igvassor@gmail.com;Игорь Сорокин |
||||||
|
2013ekaterina@mail.ru;Олег Ляшенко |
||||||
|
sir.oberst@yandex.ru;сергей |
||||||
|
khaaan@mail.ru;Алексей |
||||||
|
stas_ravskiy-95@mail.ru;Равский Станислав |
||||||
|
dmitroff197@yandex.ru;Дмитрий |
||||||
|
brolya@bk.ru;Бражинская Ольга |
||||||
|
taurus19901@mail.ru;Вячеслав Скрыпник |
||||||
|
makr1975@yandex.ru;Максим |
||||||
|
oly_armavir@mail.ru;Ольга |
||||||
|
j.haustov@gmail.com;Евгений |
||||||
|
# 15 |
||||||
|
oleg.akimov@mail.ru;Олег Акимов |
||||||
|
ritaces@inbox.lv;Rita Cevere |
||||||
|
nikita-ftf@Mail.ru;Nikita Veselov |
||||||
|
mkenes_2@mail.ru;Мадияр |
||||||
|
blackrum@yandex.ru;Роман Платонов |
||||||
|
polkovnik51@mail.ru;Владимир |
||||||
|
xaba578@mail.ru;Хава Куркиева |
||||||
|
dontsurrender@ya.ru;Сергей Терехов |
||||||
|
ci4rovik@mail.ru;Эдуард Фадеев |
||||||
|
2906300@inbox.ru;Ильсур |
||||||
|
royline@mail.ru;Шаронова Ольга |
||||||
|
Slava666-2008@ya.ru;Вячеслав |
||||||
|
host510@mail.ru;Михаил Гостищев |
||||||
|
osmusic17@gmail.com;Александр Богданович |
||||||
|
utk1@list.ru;Владимир Макеев |
||||||
|
faridweb23@gmail.com;Фарид |
||||||
|
svmc@ya.ru;Владимир |
||||||
|
aamlhv@yandex.ru;Малахов Антон |
||||||
|
aselya.bekenova@gmail.com;Асель Бекенова |
||||||
|
# 16 |
||||||
|
mf915@mail.ru;Антон |
||||||
|
guipago@mail.ru;Dmitry |
||||||
|
profiservic2@yandex.ru;Михаил |
||||||
|
zlata.reznickova@yandex.ru;злата резникова |
||||||
|
artyomzykov@yandex.ru;Артём |
||||||
|
vladimir_glight@mail.ru;Владимир |
||||||
|
zev3b@yandex.ru;Евгений Зеленько |
||||||
|
Minigalin.nail.M@yandex.ru;Наиль |
||||||
|
Dron84@gmail.com;Андрей Шарнуов |
||||||
|
# 25 |
||||||
|
kylych1@yandex.ru;Кылыч |
||||||
|
Yoooda1989@mail.ru;Максим Петров |
||||||
|
saski@mail.ru;Сергей Малкин |
||||||
|
gisstyle@yandex.ru;Анастасия Гофман |
||||||
|
belous.maria@gmail.com;Мария |
||||||
|
mk@bagur.su;Кирилл Мещерин |
||||||
|
riseagain@inbox.ru;Лина |
||||||
|
artyomzykov@gmail.com;Артем |
||||||
|
ale-xey76@yandex.ru;Алексей |
||||||
|
r61boff@mail.ru;Григорий Шевцов |
||||||
|
volnov_mv@mail.ru;Максим |
||||||
|
ekbregionetrader@gmail.com;Валентин |
||||||
|
shelbyblack37@gmail.com;Екатерина |
||||||
|
# 59 |
||||||
|
nikolletss@gmail.com;Марина |
||||||
|
bestway305@yandex.ru;Артур Нурахметов |
||||||
|
puzach@mail.ru;Пузач Влад |
||||||
|
makguseff@yandex.ru;Максим Гусев |
||||||
|
vadzimbelsky@rambler.ru;Вадим Бельский |
||||||
|
my-post@mail.ru;Татьяна |
||||||
|
alvar63@mail.ru;Лариса Варавина |
||||||
|
# 17 |
||||||
|
pertik@list.ru;Александр |
||||||
|
ebortnikov@mail.ru;Евгений Бортников |
||||||
|
kkvkk@mail.ru;Кирилл |
||||||
|
omsterkhova@rambler.ru;Ольга |
||||||
|
chiganu@gmail.com;Евгения Гороха |
||||||
|
gennadiy1983@ya.ru;Геннадий |
||||||
|
tutmos3@yandex.ru;Павел Орловский |
||||||
|
artyomzolotykh@gmail.com;Артем |
||||||
|
ssprava@ukr.net;Галина Стриженко |
||||||
|
dyrnoj@bk.ru;Максим |
||||||
|
ob080270@voliacable.com;Олег |
||||||
|
marinemaks@yandex.ru;Мария Максимова |
||||||
|
kborodavko2009@yandex.ru;Константин Бородавко |
||||||
|
blackghost58@mail.ru;Илья |
||||||
|
susenko_a@ukr.net;Андрей Сусенко |
||||||
|
mahneva-mariya@mail.ru;Мария |
||||||
|
a.michurin1783@mail.ru;Артем Мичурин |
||||||
|
lcf-84@mail.ru;Сергей Калинкин |
||||||
|
flintl@bk.ru;Кулаков Александр |
||||||
|
kovalev.home@mail.ru;Владимир Ковалев |
||||||
|
alexweb85@yandex.ru;Александр |
||||||
|
vmiretskaya@gmail.com;Viktoriia Miretska |
||||||
|
irena.kostina@mail.ru;ирина |
||||||
|
MAXYTA22@yandex.ru;Максим |
||||||
|
bengard@yandex.ru;Наталья |
||||||
|
alexatro@yandex.ru;Александра Троянова |
||||||
|
walerock@mail.ru;Валерий |
||||||
|
www.Rifma@mail.ru;Сергей Мудряков |
||||||
|
Vals_0791@mail.ru;Волкова Алиса |
||||||
|
ruslan71@bmail.ru;Руслан Мордачев |
||||||
|
serzhpodkolzin@yandex.ru;Сергей |
||||||
|
webprogrammer77@gmail.com;Прохоров Игорь |
||||||
|
hazhaev@gmail.com;Рашид Хажаев |
||||||
|
ansserg@yandex.ru;Сергей |
||||||
|
klu_lena@list.ru;Елена |
||||||
|
serggovs@yandex.ru;Говердовский Сергей |
||||||
|
kalina81@list.ru;Анна |
||||||
|
donder@yandex.ru;Пастухов Данил |
||||||
|
vip.samosadov@mail.ru;Алексей |
||||||
|
coop01@mail.ru;Андрей |
||||||
|
msp081152@mail.ru;Сергей Малахов |
||||||
|
vladislav-avdeev@mail.ru;Владислав |
||||||
|
serge-meb@mail.ru;Сергей |
||||||
|
nadin12233@mail.ru;Надежда |
||||||
|
lysenko.mi@gmail.com;Марк Лысенко |
||||||
|
stepanuk1987@yandex.ru;Алексей |
||||||
|
rock_n_vladok@mail.ru;Дурин Владислав |
||||||
|
threed@rsgc.ru;Дмитрий Панфилов |
||||||
|
gamer1648@yandex.ru;Виктор |
||||||
|
choodick@gmail.com;Амелин Артем |
||||||
|
kostgr@rambler.ru;Константин Гребенюков |
||||||
|
vadigoryache@yandex.ru;вадим горячев |
||||||
|
kirillrumyantsev1971@gmail.com;Кирилл Румянцев |
||||||
|
anton_semenchuk@rambler.ru;Антон |
||||||
|
orloff.eg@yandex.ru;Данил |
||||||
|
vvuch@ya.ru;Вячеслав Волков |
||||||
|
andru_45@list.ru;Андрей |
||||||
|
tsubasa@tut.by;Валера |
||||||
|
kira.kostenko@gmail.com;Кира Костенко |
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,56 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import datetime |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
start = datetime.datetime.now() |
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from courses.models import Lesson |
||||||
|
from lms.tools import show_progress |
||||||
|
|
||||||
|
result = open('lessons_comments_hc.xml', 'w') |
||||||
|
result.write('<?xml version="1.0" encoding="UTF-8"?>\n') |
||||||
|
result.write('<hc>\n') |
||||||
|
all = 0 |
||||||
|
n = 0 |
||||||
|
|
||||||
|
for l in Lesson.objects.all(): |
||||||
|
all += l.comments.count() if l.comments.exists() else 0 |
||||||
|
|
||||||
|
print('Количество комментариев: %s' % all) |
||||||
|
|
||||||
|
for lesson in Lesson.objects.all(): |
||||||
|
if lesson.comments.exists(): |
||||||
|
result.write('<post>\n') |
||||||
|
result.write('<title>{0} / {1}</title>\n'.format(lesson.course.get_title(), lesson.get_title())) |
||||||
|
result.write('<url>http://go.skillbox.ru/courses/lesson/{0}</url>\n'.format(lesson.id)) |
||||||
|
result.write('<comments>\n') |
||||||
|
|
||||||
|
for comment in lesson.comments.all(): |
||||||
|
result.write('<comment>\n') |
||||||
|
result.write('<id>{0}</id>\n'.format(comment.id)) |
||||||
|
result.write('<parent_id>{0}</parent_id>\n'.format(comment.parent_id)) |
||||||
|
result.write('<root_id>{0}</root_id>\n'.format(comment.get_root_id() if comment.get_root_id() else '')) |
||||||
|
result.write('<text>{0}</text>\n'.format(comment.get_text())) |
||||||
|
result.write('<nick>{0}</nick>\n'.format(comment.owner.get_name())) |
||||||
|
result.write('<time>{0}</time>\n'.format('')) |
||||||
|
result.write('<ip>{0}</ip>\n'.format(comment.owner.get_ip())) |
||||||
|
result.write('<account_id>{0}</account_id>\n'.format(comment.owner.id)) |
||||||
|
result.write('<topic>{0}</topic>\n'.format('true' if comment.owner.is_admin else 'false')) |
||||||
|
result.write('<avatar>{0}</avatar>\n'.format(comment.owner.get_image_url())) |
||||||
|
result.write('</comment>\n\n') |
||||||
|
show_progress(all, n) |
||||||
|
n += 1 |
||||||
|
|
||||||
|
result.write('</comments>\n') |
||||||
|
result.write('</post>\n') |
||||||
|
|
||||||
|
result.write('</hc>') |
||||||
|
|
||||||
|
|
||||||
|
finish = datetime.datetime.now() |
||||||
|
print('\nTIME: %s seconds' % (finish-start).seconds) |
||||||
@ -0,0 +1,42 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
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 as C |
||||||
|
from journals.models import TeacherJ, CourseThemeJ, HomeworkJ, HomeworkTry, LessonJ, ExamTry, ExamJ |
||||||
|
from access.models import User |
||||||
|
s = User.objects.get(email='alvar63@mail.ru') |
||||||
|
c = C.objects.get(id=4) |
||||||
|
for ht in HomeworkTry.objects.filter(student__email='varavina@bk.ru', material__course=c): |
||||||
|
ht.student = s |
||||||
|
ht.save() |
||||||
|
|
||||||
|
for hj in HomeworkJ.objects.filter(student__email='varavina@bk.ru', material__course=c): |
||||||
|
hj.student = s |
||||||
|
hj.save() |
||||||
|
|
||||||
|
for et in ExamTry.objects.filter(student__email='varavina@bk.ru', material__course=c): |
||||||
|
et.student = s |
||||||
|
et.save() |
||||||
|
|
||||||
|
for et in ExamJ.objects.filter(student__email='varavina@bk.ru', material__course=c): |
||||||
|
et.student = s |
||||||
|
et.save() |
||||||
|
|
||||||
|
for et in CourseThemeJ.objects.filter(student__email='varavina@bk.ru', material__course=c): |
||||||
|
et.student = s |
||||||
|
et.save() |
||||||
|
|
||||||
|
for et in LessonJ.objects.filter(student__email='varavina@bk.ru', material__course=c): |
||||||
|
et.student = s |
||||||
|
et.save() |
||||||
|
|
||||||
|
tj = TeacherJ.objects.get(student__email='varavina@bk.ru', course=c) |
||||||
|
tj.student = s |
||||||
|
tj.save() |
||||||
@ -0,0 +1 @@ |
|||||||
|
{'petrichv@gmail.com', 'skovalska@mail.ru', 'irina_z_z@mail.ru irina.huchak@gmail.com', 'a@tkachenko.in', '146133@gmail.com', 'Flyshtein@gmail.com', 'nik-black-dragon@mail.ru', 'ikey0172@mail.ru', 'gb.gayane@gmail.com', 'andrievskiydmitriy@gmail.com', 'zfalevich@gmail.com', 'nava011235@gmail.com', 'anastasy.petrenko87@gmail.com', 'vd@wearewowagency.com', 'sasha.melbourne@gmail.com', 'bobafas@gmail.com', 'egor@studiofact.ru', 'km@colary.ru', 'einzheev@itl.com.kz', 'zvetaan@gmail.com', 'dmitrij.pastushenko@gmail.com', 'smiley1776@gmail.com', 'ek.design11@gmail.com', 'lepon@bk.ru', 'mtsalka@scnsoft.com', 'baho9208@mail.ru', 's.shtukaturka@gmail.com', 'pobiz@inbox.ru', 'Nikolebedev@mail.ru', 'bershonok@gmail.com', 'waximov@gmail.com', 'dsukhanova@gmail.com', 'kira.yakuhina@gmail.com', 'info@wbest.ru', 'ap@ds-p.ru', 'dinozavrix@gmail.com', 'a.reznichenko@clientlab.ru', 'mmaslennikov@mail.ru', 'ishulga86@gmail.com', 'vovkakunts@gmail.com', 'wRUSha@yandex.ru', 'sanzharsurshanov@gmail.com', 'makspirogov@gmail.com', 'yuri.a.k.design@gmail.com', 'Dmitry.eremin7@gmail.com', 'eco.pun@gmail.com', 'dmytriy.suslov@gmail.com', 'arthur.subbota@gmail.com', 'A.dobrian@gmail.com', 'trjyfel@mail.ru', 'mikhail.a.gusev@gmail.com', 'ilyuha86@gmail.com', 'den.volchkevich@gmail.com', 'i.shymanskyi@gmail.com', 'jalalovna@yandex.ru'} |
||||||
@ -0,0 +1,321 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<hc> |
||||||
|
<post> |
||||||
|
<title>Веб-разработчик / Javascript — знакомство, концепция, логика выполнения скриптов браузером</title> |
||||||
|
<url>http://go.skillbox.ru/courses/lesson/6</url> |
||||||
|
<comments> |
||||||
|
<comment> |
||||||
|
<id>1766</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><br />Вот когда Вы говорите одно, а на доске печатается совсем другое (слишком большая задержка от того, когда Вы набираете текст, до того, как он набирается на доске) не очень хорошо. прям взрыв мозга.<br /><br /><br /></text> |
||||||
|
<nick>Игорь</nick> |
||||||
|
<time></time> |
||||||
|
<ip>109.254.49.199</ip> |
||||||
|
<account_id>152</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/dad49cb914ac438eb98db95eca7faa81.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>1857</id> |
||||||
|
<parent_id>4328</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><br />Поддерживаю! Крайне не удобно!<br /></text> |
||||||
|
<nick>Сергей</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>144</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/be41478e389f431a9540c4f99705323d.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>2138</id> |
||||||
|
<parent_id>4328</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><br />И, кажется, что с каждым видео эта задержка всё больше и больше :( Крайне неудобно смотреть<br /></text> |
||||||
|
<nick>Ольга</nick> |
||||||
|
<time></time> |
||||||
|
<ip>94.25.171.19</ip> |
||||||
|
<account_id>159</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru//media/ava_iYBxnlP</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>2301</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><br />Как оказалось,я не один обратил внимание на факт отсутсвия синхронизации текста с изображением.Теряется нить восприятия материала .<br /><br /><br /><br />Может быть было бы лучше,если бы лектор комментировал написание кода на экране,а не наоборот.<br /><br /><br /><br />Полность согласен с авторами сообщений .<br /><br /><br /><br />С уважением ко всем.<br /><br /><br /><br />Леонид Филатов.<br /><br /><br /><br /><br /></text> |
||||||
|
<nick>Леонид</nick> |
||||||
|
<time></time> |
||||||
|
<ip>89.146.80.154</ip> |
||||||
|
<account_id>169</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/2f161e7a744b4e7caabfbd2fcc973c13.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>2678</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><br />Да логики как-то нет!!!! Получается что тупо читают лекцию... ((((( Ожидал большего. В начале была в лекциях жизнь, интерес... желание... А сейчас как-то это напоминает вебинар, на котором рассказывают обо всем, но не о чем. Хотя где-то и затрагиваться моменты и логика работы скрипта. Я понимаю что нельзя все рассказать за 1,5 часа, но можно было бы тогда хоть материал дать, шпаргалку в которой бы написано было все что надо знать.<br /></text> |
||||||
|
<nick>Иван</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>177</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/8c596fd013a646d39e50c84f5b940868.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>2805</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><br />Очень не удобно просматривать видео , Во первых иногда нет на доске ,о чем говорят. Во вторых очень мелко , Нельзя ли убрать лектора и сделать доску больше.Соглашаюсь с написанным выше.<br /></text> |
||||||
|
<nick>Харсан</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>140</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/37161c700fae4c9abc05dd04b5ac2da9.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>3602</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Я уже писал об этом и после четвёртого урока, и после пятого, но рассинхронизация становится всё хуже и хуже. Что-то понять, когда ты видишь одно, а слышишь совсем другое - это просто взрыв мозга.</p> |
||||||
|
|
||||||
|
<p>Кроме того, не было ни слова сказано о</p> |
||||||
|
|
||||||
|
<ul> |
||||||
|
<li>Вопросы кроссбраузерности – логика введения новых компонентнов Javascript ведущими браузерами</li> |
||||||
|
<li>Практическая сторона процесса стандартизации,</li> |
||||||
|
</ul> |
||||||
|
|
||||||
|
<p>хотя это было анонсировано в описании урока. Или только я этого не услышал?</p> |
||||||
|
</text> |
||||||
|
<nick>Михаил</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>168</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru//media/ava_NYTYW1A</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>3841</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>К сожалению, на 30 минуте просто взял и закрыл. и стал смотреть подобные видео уроки на ютубе. Просто невозможно смотреть из-за этого рассинхрона. Очень жаль. Писали выше "Да логики как-то нет!!!! Получается что тупо читают лекцию... ((((( Ожидал большего. В начале была в лекциях жизнь, интерес... желание... А сейчас как-то это напоминает вебинар, на котором рассказывают обо всем, но не о чем. Хотя где-то и затрагиваться моменты и логика работы скрипта. Я понимаю что нельзя все рассказать за 1,5 часа, но можно было бы тогда хоть материал дать, шпаргалку в которой бы написано было все что надо знать." - полностью с этим согласен :(</p> |
||||||
|
</text> |
||||||
|
<nick>Кирилл</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>244</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/bda12f186fd04a4f9c46106b00e6ec12.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>3948</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>- полностью с этим согласен :( s vami siwu В начале была в лекциях жизнь, интерес... желание... А сейчас как-то это напоминает вебинар, на котором рассказывают обо всем, но не о чем.</p> |
||||||
|
</text> |
||||||
|
<nick>Без имени</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>203</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru//media/ava_2lldj1S</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>4439</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>На многих бесплатных курсах на ютубе и то доходчивее обьясняют и видео от звука не отстаёт:(( </p> |
||||||
|
</text> |
||||||
|
<nick>Роман</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>234</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/352052e572e9464fa0bc14a2f3568722.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>4593</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Всем привет!</p> |
||||||
|
|
||||||
|
<p>Мне то-же не понравилась рассинхронизация звука и видео, просто монтаж видео делался не программистом :)</p> |
||||||
|
|
||||||
|
<p>Преподаватель дает материал компактно и доходчиво. Мне нравится.</p> |
||||||
|
|
||||||
|
<p>Предлагаю перередактировать видео всего курса с нормальной синхронизацией, убрать <a href="http://ssmaker.ru/af6cd7d1.png" target="_blank">косяки</a> и добавить оптимизацию пространства картинки как на <a href="http://ssmaker.ru/884e4a79.png" target="_blank">рисунке (ссылка)</a>. Готов выполнить.</p> |
||||||
|
</text> |
||||||
|
<nick>Сергей</nick> |
||||||
|
<time></time> |
||||||
|
<ip>95.52.232.200</ip> |
||||||
|
<account_id>283</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/fd54983362be4a43a76c8ac03e4bbdcb.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>5494</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Я просто возмущена тем, что в таком режиме (рассинхронизации) невозможно учиться и что-то вообще понять... А главное, рассказывает преподаватель доходчиво... и очень обидно, что просто кто-то слепил все тяп-ляп, испортив хорошую вещь... А еще - переделать всё это элементарно, имея исходники... Почему ничего не меняется как минимум месяц, судя по первым комментариям? Кто-нибудь кроме недовольных учеников вообще их читает?</p> |
||||||
|
</text> |
||||||
|
<nick>Анастасия</nick> |
||||||
|
<time></time> |
||||||
|
<ip>217.118.78.38</ip> |
||||||
|
<account_id>324</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru//media/ava_ScyRJWj</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>5495</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Интересно, а у всех получается повторить, что демонстрируется на лекции, у меня уже на предыдущей и этой лекции некоторые элементы не работают как у лектора. Делал все как и лектор, на прошлом занятии даже сравнивал с "рыбой" присланной к заданию - визуально всё правильно, но у меня, в отличие от "рыбы" не все работает!</p> |
||||||
|
</text> |
||||||
|
<nick>Сергей</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>249</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/2db827adf76f4cbca66e6ee036bf7f0f.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>5653</id> |
||||||
|
<parent_id>8096</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Пару раз за прошлую лекцию он делал опечатки и у него тоже не работало. Потом их поправлял "незаметно", по ходу рассказа о других вещах. А еще попробуйте пропустить Ваш код через HTML-валидатор, вот этот: <a href="https://validator.w3.org/#validate_by_upload">https://validator.w3.org/#validate_by_upload</a> . Возможно выдаваемые им ошибки подскажут, где Вы ошиблись. А так обычное для программирования дело: опечатки в одной букве, пропущенная точка с запятой и т.п.</p> |
||||||
|
</text> |
||||||
|
<nick>Вячеслав</nick> |
||||||
|
<time></time> |
||||||
|
<ip>94.29.71.153</ip> |
||||||
|
<account_id>368</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/310119aed6a2495397c7c868ced03ba3.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>5654</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>P.S. Если Вы так и не сможете найти почему не работает, попробуйте еще открыть текст в "умном" текстовом редакторе, например Notepad++. Он подсвечивает синтаксис, возможно заметите опечатку или незакрытый тег. Еще есть средства разработчика во всех популярных браузерах, тоже полезны для поиска ошибок.</p> |
||||||
|
</text> |
||||||
|
<nick>Вячеслав</nick> |
||||||
|
<time></time> |
||||||
|
<ip>94.29.71.153</ip> |
||||||
|
<account_id>368</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/310119aed6a2495397c7c868ced03ba3.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>5940</id> |
||||||
|
<parent_id>8256</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>" Потом их поправлял "незаметно", по ходу рассказа о других вещах. " - тоже подметил. Правильнее, грамотнее и полезнее для новичков было бы, если б лектор указывал на ошибки, опечатки и их исправление, а не делал бы это молча, как бы тайком. </p> |
||||||
|
</text> |
||||||
|
<nick>Константин</nick> |
||||||
|
<time></time> |
||||||
|
<ip>5.167.79.248</ip> |
||||||
|
<account_id>362</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/65b3123d0c664635af0dfd34599ab803.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>6181</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Запись уже невозможно открыть. Может быть на ремонте?</p> |
||||||
|
</text> |
||||||
|
<nick>ANATOLY</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>288</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/8980c1dc14364eba9ef0872384d6200d.jpg</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>7719</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Вторая часть лекции - очень сумбурная и непонятная. Похоже, что чем сложнее тема - тем хуже объяснение!</p> |
||||||
|
|
||||||
|
<p>Кто-нибудь, кроме студентов, видит, что изображение и речь рассинхронизированы!</p> |
||||||
|
|
||||||
|
<p>С уважением,<br /> |
||||||
|
D</p> |
||||||
|
</text> |
||||||
|
<nick>Без имени</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>226</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru//media/ava_XClkG9G</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>8843</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Когда с рассинхроном разберётесь?? Вообще теряется нить повествования. Невозможно так обучаться.</p> |
||||||
|
</text> |
||||||
|
<nick>Вячеслав</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>246</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru//media/ava_q6Pgjib</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>9236</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Сильно раздражает не соответствие лекции и "рыбы", а так же отставание экрана. Куда теперь отправлять ДЗ тоже не понятно.Подскажите!</p> |
||||||
|
</text> |
||||||
|
<nick>Ольга</nick> |
||||||
|
<time></time> |
||||||
|
<ip>95.153.130.117</ip> |
||||||
|
<account_id>522</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru/media/personal_files/076604222a9c424eac05253820d91670.png</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>9345</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Мое предложение - подать совместную жалобу и запросить возврат средств. Никакой обратной связи, обучаться невозможно изза недостатка информации, услуга оказывается не должным образом. Кто за - пишите whatsapp 79251879198 будем придумывать что делать)</p> |
||||||
|
</text> |
||||||
|
<nick>Леонид</nick> |
||||||
|
<time></time> |
||||||
|
<ip>None</ip> |
||||||
|
<account_id>794</account_id> |
||||||
|
<topic>false</topic> |
||||||
|
<avatar>http://go.skillbox.ru//media/ava_f5psFo5</avatar> |
||||||
|
</comment> |
||||||
|
|
||||||
|
<comment> |
||||||
|
<id>9483</id> |
||||||
|
<parent_id>0</parent_id> |
||||||
|
<root_id></root_id> |
||||||
|
<text><p>Вот люди пишут:"Я понимаю что нельзя все рассказать за 1,5 часа", а за 50 минут? Лекции становятся все короче и сумбурнее, полностью согласна, что качество услуги никак не соответствует цене.</p> |
||||||
|
</text> |
||||||
|
<nick>Елизавета</nick> |
||||||
@ -0,0 +1,14 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
from finance.models import Bill |
||||||
|
|
||||||
|
for bill in Bill.objects.filter(status='F'): |
||||||
|
if not bill.user.customer: |
||||||
|
bill.user.customer = True |
||||||
|
bill.user.save() |
||||||
@ -0,0 +1,152 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
from django.core.files import File |
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/lms/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
import openpyxl |
||||||
|
from finance.models import Price |
||||||
|
from access.models import User |
||||||
|
|
||||||
|
EXEL_PATH = 'data.xlsx' |
||||||
|
USERS = {'point': 'id'} |
||||||
|
USERS_P = {} |
||||||
|
USERS_E = {} |
||||||
|
SERVICES = {'point': 'id'} |
||||||
|
BOOK = openpyxl.load_workbook(filename=EXEL_PATH) |
||||||
|
SHEET = BOOK.active |
||||||
|
|
||||||
|
|
||||||
|
def check_exists_row(index): |
||||||
|
columns = ['A', 'B', 'C', 'D', 'E', 'F', 'J', 'H', 'I', 'J'] |
||||||
|
for i in columns: |
||||||
|
if SHEET['%s%i' % (i, index)].value: |
||||||
|
return True |
||||||
|
return False |
||||||
|
|
||||||
|
|
||||||
|
def get_user_name(id): |
||||||
|
result = u'' |
||||||
|
try: |
||||||
|
user = User.objects.get(id=id) |
||||||
|
except User.DoesNotExist: |
||||||
|
return u'Пользователь не найден' |
||||||
|
except ValueError: |
||||||
|
return u'Студент' |
||||||
|
else: |
||||||
|
result = user.get_full_name() |
||||||
|
return result |
||||||
|
|
||||||
|
|
||||||
|
def get_user_email(id): |
||||||
|
result = u'' |
||||||
|
try: |
||||||
|
user = User.objects.get(id=id) |
||||||
|
except User.DoesNotExist: |
||||||
|
return u'Пользователь не найден' |
||||||
|
except ValueError: |
||||||
|
return u'Студент' |
||||||
|
else: |
||||||
|
result = user.email |
||||||
|
return result |
||||||
|
|
||||||
|
|
||||||
|
def get_user_phone(id): |
||||||
|
result = u'' |
||||||
|
try: |
||||||
|
user = User.objects.get(id=id) |
||||||
|
except User.DoesNotExist: |
||||||
|
return u'Пользователь не найден' |
||||||
|
except ValueError: |
||||||
|
return u'Студент' |
||||||
|
else: |
||||||
|
result = user.get_phone() |
||||||
|
return result |
||||||
|
|
||||||
|
|
||||||
|
def get_service_data(id): |
||||||
|
result = u'' |
||||||
|
try: |
||||||
|
service = Price.objects.get(id=id) |
||||||
|
except Price.DoesNotExist: |
||||||
|
return u'Пользователь не найден' |
||||||
|
except ValueError: |
||||||
|
return u'Услуга' |
||||||
|
else: |
||||||
|
result = service.get_name() |
||||||
|
return result |
||||||
|
|
||||||
|
|
||||||
|
####### |
||||||
|
def read_users(): |
||||||
|
i = 1 |
||||||
|
while check_exists_row(i): |
||||||
|
box = 'I%i' % i |
||||||
|
USERS[box] = SHEET[box].value |
||||||
|
USERS_P['J%s' % i] = USERS[box] |
||||||
|
USERS_E['K%s' % i] = USERS[box] |
||||||
|
print u'Читаю' |
||||||
|
print box |
||||||
|
print USERS[box] |
||||||
|
i += 1 |
||||||
|
|
||||||
|
|
||||||
|
def read_services(): |
||||||
|
i = 1 |
||||||
|
while check_exists_row(i): |
||||||
|
box = 'H%i' % i |
||||||
|
SERVICES[box] = SHEET[box].value |
||||||
|
print u'Читаю' |
||||||
|
print box |
||||||
|
print SERVICES[box] |
||||||
|
i += 1 |
||||||
|
|
||||||
|
|
||||||
|
def write_users(): |
||||||
|
for box, value in USERS.items(): |
||||||
|
data = get_user_name(value) |
||||||
|
try: |
||||||
|
SHEET[box] = data |
||||||
|
except openpyxl.utils.exceptions.CellCoordinatesException: |
||||||
|
print u'Ошибка' |
||||||
|
|
||||||
|
print u'Пишу' |
||||||
|
print box |
||||||
|
print data |
||||||
|
|
||||||
|
for box, value in USERS_P.items(): |
||||||
|
data = get_user_phone(value) |
||||||
|
try: |
||||||
|
SHEET[box] = data |
||||||
|
except openpyxl.utils.exceptions.CellCoordinatesException: |
||||||
|
print u'Ошибка' |
||||||
|
|
||||||
|
for box, value in USERS_E.items(): |
||||||
|
data = get_user_email(value) |
||||||
|
try: |
||||||
|
SHEET[box] = data |
||||||
|
except openpyxl.utils.exceptions.CellCoordinatesException: |
||||||
|
print u'Ошибка' |
||||||
|
|
||||||
|
|
||||||
|
def write_services(): |
||||||
|
for box, value in SERVICES.items(): |
||||||
|
data = get_service_data(value) |
||||||
|
try: |
||||||
|
SHEET[box] = data |
||||||
|
except openpyxl.utils.exceptions.CellCoordinatesException: |
||||||
|
print u'Ошибка' |
||||||
|
|
||||||
|
print u'Пишу' |
||||||
|
print box |
||||||
|
print data |
||||||
|
|
||||||
|
|
||||||
|
read_users() |
||||||
|
write_users() |
||||||
|
read_services() |
||||||
|
write_services() |
||||||
|
BOOK.save(EXEL_PATH) |
||||||
@ -0,0 +1,67 @@ |
|||||||
|
# coding=utf-8 |
||||||
|
import os |
||||||
|
import django |
||||||
|
import sys |
||||||
|
import simplejson |
||||||
|
|
||||||
|
|
||||||
|
sys.path.append("/var/www/projects/codemy/") |
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") |
||||||
|
django.setup() |
||||||
|
|
||||||
|
from courses.models import Course, CourseTheme, Lesson, Exam, Homework |
||||||
|
|
||||||
|
excludes = ['teachers', 'image', 'big_image', 'token', 'public', 'comments', 'materials', ] |
||||||
|
data = simplejson.load(open('courses_dump.json')) |
||||||
|
_map = {} |
||||||
|
results = [] |
||||||
|
|
||||||
|
|
||||||
|
def get_kwargs(fields): |
||||||
|
result = {} |
||||||
|
for key, value in fields.items(): |
||||||
|
print(key, value) |
||||||
|
if key not in excludes: |
||||||
|
if key in _map: |
||||||
|
if type(value) == list: |
||||||
|
_result = [] |
||||||
|
for _tmp in value: |
||||||
|
_result.append(_map[key][_tmp]) |
||||||
|
value = _result |
||||||
|
else: |
||||||
|
value = _map[key][value] if key in _map else value |
||||||
|
|
||||||
|
result[key] = value |
||||||
|
results.append(result) |
||||||
|
return result |
||||||
|
|
||||||
|
|
||||||
|
def add_in_map(model, key, value): |
||||||
|
if model not in _map: |
||||||
|
_map[model] = {} |
||||||
|
_map[model][key] = value |
||||||
|
|
||||||
|
for model in data: |
||||||
|
if model['model'] == 'courses.course': |
||||||
|
course, c = Course.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) |
||||||
|
add_in_map('course', model['pk'], course) |
||||||
|
|
||||||
|
elif model['model'] == 'courses.coursetheme': |
||||||
|
course, c = CourseTheme.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) |
||||||
|
add_in_map('theme', model['pk'], course) |
||||||
|
|
||||||
|
elif model['model'] == 'courses.lesson': |
||||||
|
course, c = Lesson.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) |
||||||
|
add_in_map('lesson', model['pk'], course) |
||||||
|
|
||||||
|
elif model['model'] == 'courses.exam': |
||||||
|
course, c = Exam.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) |
||||||
|
add_in_map('exam', model['pk'], course) |
||||||
|
|
||||||
|
elif model['model'] == 'courses.homework': |
||||||
|
course, c = Homework.objects.get_or_create(**(dict(get_kwargs(model['fields'])))) |
||||||
|
add_in_map('homework', model['pk'], course) |
||||||
|
|
||||||
|
print(results) |
||||||
|
|
||||||
|
#print(data[0]) |
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue