Миграции курсов

feature/fix_generate_pass
Andrey 8 years ago
parent abf7720b93
commit 9f11f4c426
  1. 20
      access/migrations/0003_auto_20171019_1149.py
  2. 20
      access/migrations/0004_auto_20171019_1150.py
  3. 20
      access/migrations/0005_auto_20171019_1241.py
  4. 20
      access/migrations/0006_auto_20171019_1243.py
  5. 25
      access/models.py
  6. 7
      access/serializers.py
  7. 52
      access/tasks.py
  8. 25
      access/views.py
  9. 1
      config_app/__init__.py
  10. 7
      config_app/apps.py
  11. 0
      config_app/management/__init__.py
  12. 0
      config_app/management/commands/__init__.py
  13. 25
      config_app/management/commands/clear_log.py
  14. 0
      config_app/settings/__init__.py
  15. 5
      config_app/settings/dev.env
  16. 5
      config_app/settings/prod.env
  17. 5
      config_app/settings/test.env
  18. 7
      config_app/supervisor_configs/celery.conf
  19. 7
      config_app/supervisor_configs/flower.conf
  20. 7
      config_app/supervisor_configs/schedule.conf
  21. 2
      courses/__init__.py
  22. 81
      courses/models.py
  23. 30
      csv/load_perm.py
  24. 1
      finance/models.py
  25. 60
      finance/tasks.py
  26. 3
      finance/yandex_pay.py
  27. 2
      journals/models.py
  28. 142
      journals/tasks.py
  29. 7
      lms/__init__.py
  30. 23
      lms/celery.py
  31. 115
      lms/settings.py
  32. 1
      lms/urls.py
  33. 5
      management/admin.py
  34. 1
      requirements.txt
  35. 1
      service/__init__.py
  36. 5
      service/admin.py
  37. 7
      service/apps.py
  38. 46
      service/migrations/0001_initial.py
  39. 41
      service/models.py
  40. 9
      service/tasks.py
  41. 280
      templates/404.html
  42. 291
      templates/500.html
  43. 73
      templates/access_error.html
  44. 369
      templates/activation.html
  45. 140
      templates/admin_profile.html
  46. 84
      templates/all_achievements.html
  47. 35
      templates/all_actions.html
  48. 117
      templates/all_articles.html
  49. 244
      templates/all_comments.html
  50. 41
      templates/analytics/base.html
  51. 2
      templates/analytics/homework.html
  52. 12
      templates/analytics/index.html
  53. 9
      templates/analytics/theme.html
  54. 120
      templates/articles.html
  55. 41
      templates/articles_index.html
  56. 34
      templates/auth_error.html
  57. 652
      templates/auth_modals.html
  58. 1303
      templates/base_index.html
  59. 159
      templates/bill_out.html
  60. 34
      templates/by_error.html
  61. 236
      templates/cabinet.html
  62. 25
      templates/clean_articles.html
  63. 67
      templates/comment_one.html
  64. 10
      templates/comments.html
  65. 22
      templates/comments_block.html
  66. 48
      templates/contacts.html
  67. 375
      templates/course.html
  68. 14
      templates/diplomscab.html
  69. 165
      templates/everyone_modals.html
  70. 333
      templates/exam.html
  71. 185
      templates/fail_pay.html
  72. 111
      templates/faq.html
  73. 25
      templates/faq_one.html
  74. 55
      templates/freeweek_more.html
  75. 185
      templates/good_pay.html
  76. 336
      templates/homework.html
  77. 140
      templates/index.html
  78. 143
      templates/index_menu.html
  79. 248
      templates/lesson.html
  80. 14
      templates/mail.html
  81. 50
      templates/mails/new_users.html
  82. 279
      templates/mails/sent_order.html
  83. 275
      templates/mails/sent_out_order.html
  84. 30
      templates/mails/webinar.html
  85. 101
      templates/manager_account.html
  86. 178
      templates/manager_history.html
  87. 135
      templates/manager_profile.html
  88. 295
      templates/manager_servicerequest.html
  89. 47
      templates/menu.html
  90. 70
      templates/new_reports.html
  91. 67
      templates/news_one.html
  92. 283
      templates/no_auth_modals.html
  93. 63
      templates/one_comment.html
  94. 281
      templates/practice_workshop.html
  95. 446
      templates/profile.html
  96. 85
      templates/progress_report.html
  97. 55
      templates/reports.html
  98. 222
      templates/reports/base_index.html
  99. 81
      templates/reports/bills.html
  100. 149
      templates/reports/freeweek.html
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-10-19 11:49
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('access', '0002_auto_20171018_1437'),
]
operations = [
migrations.AlterField(
model_name='account',
name='gender',
field=models.SmallIntegerField(choices=[(1, 'male'), (2, 'female'), (0, 'undefined')], default=0),
),
]

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-10-19 11:50
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('access', '0003_auto_20171019_1149'),
]
operations = [
migrations.AlterField(
model_name='account',
name='gender',
field=models.SmallIntegerField(choices=[(0, 'undefined'), (1, 'male'), (2, 'female')], default=0),
),
]

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-10-19 12:41
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('access', '0004_auto_20171019_1150'),
]
operations = [
migrations.AlterField(
model_name='account',
name='gender',
field=models.SmallIntegerField(choices=[(1, 'male'), (0, 'undefined'), (2, 'female')], default=0),
),
]

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-10-19 12:43
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('access', '0005_auto_20171019_1241'),
]
operations = [
migrations.AlterField(
model_name='account',
name='gender',
field=models.SmallIntegerField(choices=[(0, 'undefined'), (1, 'male'), (2, 'female')], default=0),
),
]

@ -3,6 +3,7 @@ import random
import string
from courses.models import Vertex, Course
from storage.models import Storage
from django.core.mail import send_mail
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
from django.contrib.auth.models import PermissionsMixin, Group
@ -26,11 +27,11 @@ class Invite(models.Model):
class Account(models.Model):
GENDER_CHOICES = {
GENDER_CHOICES = (
(0, 'undefined'),
(1, 'male'),
(2, 'female'),
}
)
b_day = models.DateField(blank=True, null=True)
city = models.CharField(max_length=63, null=True, blank=True)
gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0)
@ -77,7 +78,7 @@ class CustomUserManager(BaseUserManager):
email = self.normalize_email(email)
user = self.model(email=email, is_staff=is_staff, is_active=is_active, first_name=first_name,
user = self.model(email=email, is_staff=is_staff, is_active=is_active, first_name=first_name, id=self.last().id +1,
is_superuser=is_superuser, date_joined=date_joined, last_login=last_login, **extra_fields)
if not password:
@ -97,9 +98,16 @@ class CustomUserManager(BaseUserManager):
user.groups.add(Group.objects.get(name=group))
if is_send:
pass
Invite.objects.create(owner=user, hash=''.join(random.choice(string.ascii_letters) for x in range(15)))
# Должна идти отбивка
invite = Invite.objects.create(owner=user, hash=''.join(random.choice(string.ascii_letters) for x in range(15)))
send_mail(
subject='Спасибо за регистрацию',
message='''
Вы были успешны зарегистрированны на портале go.skillbox.ru
для подтверждения регистрации перейдите по ссылке
https://go.skillbox.ru/api/v1/users/registration/?hash=''' + invite.hash,
from_email='robo@skillbox.ru',
recipient_list=[user.email],
)
return user
def create_user(self, email, password, **extra_fields):
@ -109,10 +117,7 @@ class CustomUserManager(BaseUserManager):
return self._create_user(email=email, password=password, is_superuser=True, is_staff=True, is_active=True)
def create_student(self, email, password, **extra_fields):
user = self.create_user(email=email, password=password, is_send=True, **extra_fields)
group = Group.objects.get(name='students')
user.groups.add(group)
return user
return self.create_user(email=email, password=password, role_list=['students'], is_send=True, **extra_fields)
class User(AbstractBaseUser, PermissionsMixin):

@ -17,15 +17,20 @@ class AccountSerializer(serializers.ModelSerializer):
class UserInitSerializer(serializers.ModelSerializer):
account = serializers.SerializerMethodField()
groups = serializers.SerializerMethodField()
class Meta:
model = get_user_model()
fields = ('id', 'email', 'first_name', 'last_name', 'account', )
fields = ('id', 'email', 'first_name', 'last_name', 'account', 'groups', 'is_staff', 'is_superuser')
@staticmethod
def get_account(self):
return AccountSerializer(self.account).data
@staticmethod
def get_groups(self):
return [group.name for group in self.groups.all()]
class ExtraPrivilegeSerializer(serializers.ModelSerializer):
class Meta:

@ -4,32 +4,32 @@ from datetime import timedelta, datetime
from access.models import User, TrafSource, TrafTokenHistory
@periodic_task(run_every=timedelta(minutes=20))
def check_prepo_delay():
# Проверка просроченых задач преподавателя
for res in User.objects.filter(delay_date__lte=datetime.now(), in_role='T'):
res.delay = False
res.delay_description = ''
res.delay_date = None
res.save()
@periodic_task(run_every=timedelta(minutes=1))
def check_online():
for user in User.objects.filter(status='ON', last_time__lte=datetime.now()-timedelta(minutes=10)):
user.status = 'OFF'
user.save()
@periodic_task(run_every=timedelta(hours=1))
def check_traf_source():
for source in TrafSource.objects.filter(on=True).exclude(live_time=None):
if source.token and source.token_start + timedelta(hours=source.live_time) < datetime.now():
source.on = False
TrafTokenHistory.objects.create(token=source.token, source=source, live_time=source.live_time, date_start=source.token_start, date_end=datetime.now())
source.token = None
source.token_start = None
source.save()
# @periodic_task(run_every=timedelta(minutes=20))
# def check_prepo_delay():
# # Проверка просроченых задач преподавателя
# for res in User.objects.filter(delay_date__lte=datetime.now(), in_role='T'):
# res.delay = False
# res.delay_description = ''
# res.delay_date = None
# res.save()
#
#
# @periodic_task(run_every=timedelta(minutes=1))
# def check_online():
# for user in User.objects.filter(status='ON', last_time__lte=datetime.now()-timedelta(minutes=10)):
# user.status = 'OFF'
# user.save()
#
#
# @periodic_task(run_every=timedelta(hours=1))
# def check_traf_source():
# for source in TrafSource.objects.filter(on=True).exclude(live_time=None):
# if source.token and source.token_start + timedelta(hours=source.live_time) < datetime.now():
# source.on = False
# TrafTokenHistory.objects.create(token=source.token, source=source, live_time=source.live_time, date_start=source.token_start, date_end=datetime.now())
# source.token = None
# source.token_start = None
# source.save()
#@periodic_task(run_every=timedelta(minutes=1))

@ -1,9 +1,11 @@
from django.contrib.auth import get_user_model
from django.contrib import auth
from django.shortcuts import redirect
from rest_framework.views import APIView
from rest_framework.renderers import JSONRenderer
from rest_framework.response import Response
from access.models import Invite
from access.serializers import UserInitSerializer
@ -20,7 +22,7 @@ class CheckUserView(APIView):
status_code = 200
def get(self, request):
if request.user.is_authenticated() and (request.user.is_staff or request.user.is_admin):
if request.user.is_authenticated() and (request.user.is_staff or request.user.is_superuser):
return Response(True, status=self.status_code)
return Response(False, status=self.status_code)
@ -38,17 +40,28 @@ class InfoUserView(APIView):
class RegistrationView(APIView):
renderer_classes = (JSONRenderer,)
@staticmethod
def get(request):
try:
invite = Invite.objects.get(hash=request.GET['hash'])
invite.owner.is_active = True
invite.owner.save()
auth.login(request, invite.owner)
invite.delete()
return redirect('/')
except Invite.DoesNotExist:
return Response('Приглошения не существует возможно оно сгорело', status=404)
@staticmethod
def post(request):
try:
user = get_user_model().objects.get(email=request.JSON['email'].lower())
get_user_model().objects.get(email=request.JSON['email'].lower())
return Response('user already exist', status=403)
except get_user_model().DoesNotExist:
user = get_user_model().objects.create_user(
user = get_user_model().objects.create_student(
email=request.JSON['email'].lower(),
password=request.JSON['password']
)
user.set_password(request.JSON['password'])
user.reg_status = '2'
user.save()
return Response(UserInitSerializer(user).data, status=200)

@ -0,0 +1 @@
default_app_config = "config_app.apps.ConfigAppConfig"

@ -0,0 +1,7 @@
# -*- coding: utf-8 -*-
from django.apps import AppConfig
class ConfigAppConfig(AppConfig):
name = "config_app"
verbose_name = "Конфиги"

@ -0,0 +1,25 @@
from django.core.management.base import BaseCommand, CommandError
import os
import shutil
from django.conf import settings
class Command(BaseCommand):
help = 'Clear log files'
def add_arguments(self, parser):
parser.add_argument(
'--log_name',
type=str,
default='__all__',
dest='log_name',
help='указать имя конкретного файла'
)
def handle(self, *args, **options):
if options['log_name'] == '__all__':
shutil.rmtree(settings.BASE_DIR + '/logs')
os.mkdir(settings.BASE_DIR + '/logs')
else:
os.remove(settings.BASE_DIR + '/logs/' + options['log_name'])

@ -0,0 +1,5 @@
DEBUG=True
SECRET_KEY='!eiquy7_+2#vn3z%zfp51$m-=tmvtcv*cj*@x$!v(_9btq0w=$'
DATABASE_URL='psql://team:nu5Xefise@127.0.0.1:5432/new_lms'
EMAIL_URL='smtp+tls://robo@skillbox.ru:nu5Xefise@smtp.gmail.com:587'
CACHE_URL=rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient

@ -0,0 +1,5 @@
DEBUG=False
SECRET_KEY='!eiquy7_+2#vn3z%zfp51$m-=tmvtcv*cj*@x$!v(_9btq0w=$'
DATABASE_URL='psql://team:nu5Xefise@127.0.0.1:5432/new_lms'
EMAIL_URL='smtp+tls://robo@skillbox.ru:nu5Xefise@smtp.gmail.com:587'
CACHE_URL=rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient

@ -0,0 +1,5 @@
DEBUG=True
SECRET_KEY='!eiquy7_+2#vn3z%zfp51$m-=tmvtcv*cj*@x$!v(_9btq0w=$'
DATABASE_URL='psql://team:nu5Xefise@127.0.0.1:5432/new_lms'
EMAIL_URL='smtp+tls://9ae31a1a770138:a7d79ee373a14c@smtp.mailtrap.io:2525'
CACHE_URL=rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient

@ -0,0 +1,7 @@
[program:celery]
command=/home/andrey/skillbox/bin/celery -A lms worker -l=info
directory=/home/andrey/skillbox/go.skillbox.ru
user=andrey
stdout_logfile=/home/andrey/skillbox/go.skillbox.ru/logs/celery.log
autorestart=true
redirect_stderr=true

@ -0,0 +1,7 @@
[program:flower]
command=/home/andrey/skillbox/bin/celery -A lms flower -l=info
directory=/home/andrey/skillbox/go.skillbox.ru
user=andrey
stdout_logfile=/home/andrey/skillbox/go.skillbox.ru/logs/flower.log
autorestart=true
redirect_stderr=true

@ -0,0 +1,7 @@
[program:schedule]
command=/home/andrey/skillbox/bin/celery -A lms beat -l=info
directory=/home/andrey/skillbox/go.skillbox.ru
user=andrey
stdout_logfile=/home/andrey/skillbox/go.skillbox.ru/logs/schedule.log
autorestart=true
redirect_stderr=true

@ -1 +1 @@
default_app_config = "courses.apps.CoursesAppConfig"
default_app_config = "courses.apps.CoursesAppConfig"

@ -73,6 +73,38 @@ class Course(models.Model):
return {"topic_count": topic_count, "tutorial_count": tutorial_count, "task_count": task_count}
def get_first(self, vertex_model_list=None):
if vertex_model_list is None:
vertex_model_list = ['topic', 'tutorial', 'task']
else:
for i in vertex_model_list:
if i not in ['topic', 'tutorial', 'task']:
raise ValueError('undefined model: ' + i)
vertex = Vertex.objects.get(id=self.coursemap.get_first())
if vertex.content_type.model in vertex_model_list:
return vertex
return vertex.get_next(vertex_model_list)
def get_last(self, vertex_model_list=None):
if vertex_model_list is None:
vertex_model_list = ['topic', 'tutorial', 'task']
else:
for i in vertex_model_list:
if i not in ['topic', 'tutorial', 'task']:
raise ValueError('undefined model: ' + i)
vertex = Vertex.objects.get(id=self.coursemap.get_last())
if vertex.content_type.model in vertex_model_list:
return vertex
return vertex.get_previous(vertex_model_list)
class Meta:
verbose_name = u"Курс"
verbose_name_plural = u"Курсы"
@ -181,9 +213,37 @@ class Vertex(models.Model):
def __str__(self):
return self.title + ': ' + str(self.content_type.model)
def get_next(self):
def get_next(self, vertex_model_list=None):
if vertex_model_list is None:
vertex_model_list = ['topic', 'tutorial', 'task']
else:
for i in vertex_model_list:
if i not in ['topic', 'tutorial', 'task']:
raise ValueError('undefined model: ' + i)
vertex_id = CourseMap.objects.get(course=self.course).get_next(self.id)
return Vertex.objects.get(id=int(vertex_id), )
vertex = Vertex.objects.get(id=int(vertex_id),)
if vertex.content_type.model in vertex_model_list:
return vertex
return vertex.get_next(vertex_model_list)
def get_previous(self, vertex_model_list=None):
if vertex_model_list is None:
vertex_model_list = ['topic', 'tutorial', 'task']
else:
for i in vertex_model_list:
if i not in ['topic', 'tutorial', 'task']:
raise ValueError('undefined model: ' + i)
vertex_id = CourseMap.objects.get(course=self.course).get_previous(self.id)
vertex = Vertex.objects.get(id=int(vertex_id),)
if vertex.content_type.model in vertex_model_list:
return vertex
return vertex.get_previous(vertex_model_list)
def is_more(self, vertex) -> bool:
if not self.course == vertex.course:
@ -255,9 +315,22 @@ class CourseMap(models.Model):
return helper(json.loads(self.dependent_elements))
def get_next(self, vertex_id) -> str:
def get_next(self, vertex_id) -> int:
res_list = self.map_to_list()
if not res_list[-1] == vertex_id:
return res_list[res_list.index(vertex_id)+1]
return res_list[res_list.index(vertex_id) + 1]
error = "vertex_id " + str(vertex_id) + " last object in list\n" + ",".join([str(v) for v in res_list])
raise ValueError(error)
def get_previous(self, vertex_id) -> int:
res_list = self.map_to_list()
if not res_list[0] == vertex_id:
return res_list[res_list.index(vertex_id) - 1]
error = "vertex_id " + str(vertex_id) + " first object in list\n" + ",".join([str(v) for v in res_list])
raise ValueError(error)
def get_first(self):
return self.map_to_list()[0]
def get_last(self):
return self.map_to_list()[-1]

@ -6,7 +6,7 @@ django.setup()
from django.contrib.auth import get_user_model
from access.models import Progress
from courses.models import Vertex
from courses.models import Vertex, Course
if __name__ == '__main__':
with open('./access/progress.csv') as progress_csv:
@ -23,13 +23,29 @@ if __name__ == '__main__':
get_id = int(row['last_success_obj'])+10000
vertex = Vertex.objects.get(content_type__model='task', object_id=str(get_id))
if vertex:
try:
course = Course.objects.get(id=row['course'])
try:
if vertex and not vertex == course.get_last(['task', 'tutorial']):
Progress.objects.get_or_create(
user=get_user_model().objects.get(id=row['user']),
course=course,
active_obj=vertex.get_next(['task', 'tutorial'])
)
elif vertex and vertex == course.get_last(['task', 'tutorial']):
Progress.objects.get_or_create(
user=get_user_model().objects.get(id=row['user']),
course=course,
success=True
)
else:
Progress.objects.get_or_create(
user=get_user_model().objects.get(id=row['user']),
course_id=row['course'],
active_obj=vertex.get_next()
course=course,
active_obj=course.get_first(['task', 'tutorial'])
)
except get_user_model().DoesNotExist:
print(row['user'])
except get_user_model().DoesNotExist:
print(row['user'])

@ -2,7 +2,6 @@
from django.db import models
from django.conf import settings
from courses.models import Course, Vertex
from service.models import MailBox
class Price(models.Model):

@ -8,33 +8,33 @@ from finance.models import Price, Bill, ServiceRequest
from courses.models import CourseMap
@periodic_task(run_every=timedelta(minutes=1))
def price_map_migrator():
for price in Price.objects.filter(included=None).exclude(course=None):
if not price.included.exists():
inc_type = []
if price.m_type == 'B':
inc_type = ['B']
elif price.m_type == 'E':
inc_type = ['B', 'E']
elif price.m_type == 'P':
inc_type = ['B', 'E', 'P']
for m in CourseMap.objects.filter(course=price.course):
if m.get_obj().theme.price_type in inc_type:
price.included.add(m)
@periodic_task(run_every=timedelta(hours=1))
def price_map_migrator():
for price in Price.objects.exclude(by_time=None):
for bill in Bill.objects.filter(service=price, fire_date__lt=datetime.now()):
bill.status = 'H'
bill.save()
@periodic_task(run_every=timedelta(minutes=1))
def sent_service_request_to_amo():
sr = ServiceRequest.objects.filter(send=False, send_date__lt=datetime.now()).exclude(Q(name='TEST')| Q(status='E')).first()
if sr:
sr.sent_to_amo()
# @periodic_task(run_every=timedelta(minutes=1))
# def price_map_migrator():
# for price in Price.objects.filter(included=None).exclude(course=None):
# if not price.included.exists():
# inc_type = []
#
# if price.m_type == 'B':
# inc_type = ['B']
# elif price.m_type == 'E':
# inc_type = ['B', 'E']
# elif price.m_type == 'P':
# inc_type = ['B', 'E', 'P']
# for m in CourseMap.objects.filter(course=price.course):
# if m.get_obj().theme.price_type in inc_type:
# price.included.add(m)
#
#
# @periodic_task(run_every=timedelta(hours=1))
# def price_map_migrator():
# for price in Price.objects.exclude(by_time=None):
# for bill in Bill.objects.filter(service=price, fire_date__lt=datetime.now()):
# bill.status = 'H'
# bill.save()
#
#
# @periodic_task(run_every=timedelta(minutes=1))
# def sent_service_request_to_amo():
# sr = ServiceRequest.objects.filter(send=False, send_date__lt=datetime.now()).exclude(Q(name='TEST')| Q(status='E')).first()
# if sr:
# sr.sent_to_amo()

@ -1,11 +1,12 @@
# coding=utf-8
import datetime
from hashlib import md5
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from finance.models import Bill, YandexKassaHistory
from lms.settings import YANDEX_MONEY_SHOP_PASSWORD
from settings.settings import YANDEX_MONEY_SHOP_PASSWORD
def gen_md5(cd):

@ -2,6 +2,7 @@
from __future__ import unicode_literals
from django.conf import settings
from django.contrib.auth.models import Group
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.db import models
@ -45,6 +46,7 @@ class Thread(models.Model):
is_staff = models.BooleanField(default=False, verbose_name=u'Админская ли табличка')
recurse_step = models.SmallIntegerField(default=0, verbose_name=u'Поле аптимизации поиска')
subscribers = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Подписчики', blank=True)
groups = models.ManyToManyField(to=Group, verbose_name=u'Подписчики', blank=True)
check_subscribe = models.BooleanField(default=True, verbose_name='Проверять ли подписки')
parent = models.ManyToManyField(to='self', blank=True, symmetrical=False)
x = models.SmallIntegerField(default=300)

@ -1,77 +1,79 @@
# coding=utf-8
from celery.task import periodic_task
from datetime import timedelta, datetime
from celery.task import periodic_task
from django.core.files import File
from access.models import User
from journals.models import ExamTry, HomeworkTry, DiplomaJ
from management.letters import sent_new_expired
from lms.settings import TEACHER
@periodic_task(run_every=timedelta(hours=1))
def check_expired():
# Проверка просроченых задач преподавателя
for res in (ExamTry.objects.filter(f_date=None).exclude(expired=True),
HomeworkTry.objects.filter(f_date=None).exclude(expired=True)):
for _try in res:
if _try.parent.get_status_flag() not in ['N', 'F']:
# Проверка экзамена
if _try.date + timedelta(days=1) < datetime.now():
_try.expired = True
_try.save()
for user in User.objects.filter(in_role='S2'):
sent_new_expired(_try, user.email)
@periodic_task(run_every=timedelta(minutes=1))
def check_robo_prep():
teacher = User.objects.get(email=TEACHER)
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.now()
s = True
elif 'GO_TO_FAIL' in _cm.text:
_tr.f_date = datetime.now()
s = True
if s:
_tr.save()
#@periodic_task(run_every=timedelta(minutes=3))
#def block_warning():
# for tm in CourseThemeJ.objects.filter(material__empty=True):
# for n in CourseThemeJ.objects.filter(material__sort__gte=tm.material.sort-1, f_date=None).exclude(date=None):
# for u in User.objects.filter(in_role='A'):
# letters.block_warning(n, n.material.course.get_title(), u)
from access.models import User
from journals.models import ExamTry, HomeworkTry, DiplomaJ
from settings.settings import TEACHER
@periodic_task(run_every=timedelta(minutes=3))
def gen_in_diploma():
for tm in DiplomaJ.objects.filter(gen=False):
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, 'rb')
tm.in_image.save(File(_in).name, File(_in), save=True)
if _out:
_out = open(_out, 'rb')
tm.out_image.save(File(_out).name, File(_out), save=True)
tm.gen = True
tm.save()
# @periodic_task(run_every=timedelta(hours=1))
# def check_expired():
# # Проверка просроченых задач преподавателя
# for res in (ExamTry.objects.filter(f_date=None).exclude(expired=True),
# HomeworkTry.objects.filter(f_date=None).exclude(expired=True)):
# for _try in res:
# if _try.parent.get_status_flag() not in ['N', 'F']:
# # Проверка экзамена
# if _try.date + timedelta(days=1) < datetime.now():
# _try.expired = True
# _try.save()
# for user in User.objects.filter(in_role='S2'):
# sent_new_expired(_try, user.email)
#
#
# @periodic_task(run_every=timedelta(minutes=1))
# def check_robo_prep():
# teacher = User.objects.get(email=TEACHER)
# 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.now()
# s = True
# elif 'GO_TO_FAIL' in _cm.text:
# _tr.f_date = datetime.now()
# s = True
# if s:
# _tr.save()
#
#
# #@periodic_task(run_every=timedelta(minutes=3))
# #def block_warning():
# # for tm in CourseThemeJ.objects.filter(material__empty=True):
# # for n in CourseThemeJ.objects.filter(material__sort__gte=tm.material.sort-1, f_date=None).exclude(date=None):
# # for u in User.objects.filter(in_role='A'):
# # letters.block_warning(n, n.material.course.get_title(), u)
#
#
# @periodic_task(run_every=timedelta(minutes=3))
# def gen_in_diploma():
# for tm in DiplomaJ.objects.filter(gen=False):
# 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, 'rb')
# tm.in_image.save(File(_in).name, File(_in), save=True)
#
# if _out:
# _out = open(_out, 'rb')
# tm.out_image.save(File(_out).name, File(_out), save=True)
# tm.gen = True
# tm.save()

@ -0,0 +1,7 @@
from __future__ import absolute_import, unicode_literals
# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from lms.celery import app as celery_app
__all__ = ['celery_app']

@ -0,0 +1,23 @@
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from raven import Client
from raven.contrib.celery import register_signal, register_logger_signal
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lms.settings')
app = Celery('lms')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
client = Client('http://caaea487274f4e23a9107862484c79f3:3d463ad4717942508536f7a659921950@sentry.skillbox.ru/3')
register_logger_signal(client)
register_signal(client)
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))

@ -1,51 +1,50 @@
# coding=utf-8
import os
import raven
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
import environ
root = environ.Path(__file__) - 2
env = environ.Env()
MOD = os.environ.get('MOD', 'Dev')
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '!eiquy7_+2#vn3z%zfp51$m-=tmvtcv*cj*@x$!v(_9btq0w=$'
COMMENT_SECRET = 'ntyy70()&^&%)_^%#++i[k,q4jnb'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False if os.environ.get('DEBUG', 'False') == 'False' else True
TESTING = False
TEST_EMAIL = 'bez.b.unix@gmail.com'
TEACHER = 't@skillbox.ru'
SUPERVISOR = 's@skillbox.ru'
MANAGER = 'm@skillbox.ru'
MANAGERS = [
'maksim.shachkov@skillbox.ru',
'aleksey.zelentsov@skillbox.ru',
'roman.fatullaev@skillbox.ru',
'vladimir.kakaulin@skillbox.ru',
'dmitry.perepelitsa@skillbox.ru',
'timofey.trifonov@skillbox.ru',
'sergej.gavrilovich@skillbox.ru',
]
if MOD == 'Test':
environ.Env.read_env(str(root) + '/config_app/settings/test.env')
elif MOD == 'Dev':
environ.Env.read_env(str(root) + '/config_app/settings/dev.env')
elif MOD == 'Prod':
environ.Env.read_env(str(root) + '/config_app/settings/prod.env')
else:
raise ImportError('no such environ ' + MOD)
EMAIL_CONFIG = env.email_url('EMAIL_URL',)
vars().update(EMAIL_CONFIG)
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'django-db'
CELERY_CACHE_BACKEND = 'django-cache'
BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 180}
CELERY_EMAIL_TASK_CONFIG = {
'name': 'djcelery_email_send',
'queue': 'celery',
'rate_limit': '50/m',
'ignore_result': False,
}
CELERYD_TASK_TIME_LIMIT = 300
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SUPPORT = 'hello@skillbox.ru'
SUPPORT_PHONE = '+7 (495) 984-41-77'
SUPPORT_TIME = '(с 10 до 19 по Москве)'
ADDRESS = 'Москва, ул. Бауманская, д. 11'
AUTH_USER_MODEL = 'access.User'
VZAAR = 'f1e965defc6fbaa92c544cf84267e830'
SMS = '5ED9C6BB-41E8-C760-10FA-F8A310D88952'
ALLOWED_HOSTS = ['*']
DOMAIN = 'https://go.skillbox.ru'
NAME = u'SkillBox - обучающая платформа'
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
BILL_LOGIN = '1501'
BILL_URL = 'https://api.simplepay.pro/sp/payment'
BILL_KEY = u'848360a6b0b8cdfaca3603ede75e4d8b'
@ -54,11 +53,6 @@ BILL_TOKEN = u'c63fc7fdc74de318e1f9b078b6d4406a3e62f522b00fb305afe61c0ead238eb9c
AMO_USER_LOGIN = 'baryshnikov@mokselle.com'
AMO_USER_HASH = 'd639c26c1c1900e5a8cee66cd3395bdc'
AMO_SUBDOMAIN = 'mokselle'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = 'nu5Xefise'
EMAIL_HOST_USER = 'robo@skillbox.ru'
EMAIL_PORT = '587'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'robo@skillbox.ru'
YANDEX_MONEY_SHOP_PASSWORD = 'nu5Xefise'
YANDEX_SHOP_ID = '157133'
@ -68,6 +62,20 @@ YANDEX_scid = '149639'
# место куда сохраняем пользовательские файлы
PERSONAL_FILES = '/personal_files/'
DATABASES = {
'default': env.db(),
}
SESSION_ENGINE = 'redis_sessions.session'
CELERY_EMAIL_CHUNK_SIZE = 1
CACHES = {
'default': env.cache(),
}
EMAIL_BACKEND = 'djcelery_email.backends.CeleryEmailBackend'
SECRET_KEY = env('SECRET_KEY')
INSTALLED_APPS = [
'django.contrib.admin',
@ -78,6 +86,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles',
'django_celery_results',
'django_celery_beat',
"djcelery_email",
'raven.contrib.django.raven_compat',
'access',
'courses',
@ -85,8 +94,8 @@ INSTALLED_APPS = [
'management',
'finance',
'journals',
'service',
'library',
'config_app',
]
MIDDLEWARE_CLASSES = [
@ -123,21 +132,6 @@ TEMPLATES = [
WSGI_APPLICATION = 'lms.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ.get('DB_NAME', 'new_lms'),
'USER': os.environ.get('PG_ENV_POSTGRES_USER', 'team'),
'PASSWORD': os.environ.get('PG_ENV_POSTGRES_PASSWORD', 'nu5Xefise'),
'HOST': os.environ.get('PG_PORT_5432_TCP_ADDR', '127.0.0.1'),
'PORT': os.environ.get('PG_PORT_5432_TCP_PORT', '5432'),
},
}
# Password validation
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
@ -156,9 +150,6 @@ AUTH_PASSWORD_VALIDATORS = [
]
# Internationalization
# https://docs.djangoproject.com/en/1.9/topics/i18n/
LANGUAGE_CODE = 'ru-ru'
TIME_ZONE = 'Europe/Moscow'
USE_I18N = True
@ -166,14 +157,10 @@ USE_L10N = True
USE_TZ = False
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
REDACTOR_OPTIONS = {'lang': 'ru'}
REDACTOR_UPLOAD = 'uploads/'
RAVEN_CONFIG = {
'dsn': 'http://caaea487274f4e23a9107862484c79f3:3d463ad4717942508536f7a659921950@sentry.skillbox.ru/3'

@ -1,6 +1,7 @@
from django.conf.urls import url, include
from django.contrib import admin
from django.views.static import serve
from lms import settings
urlpatterns = [

@ -1,5 +1,6 @@
from django.contrib import admin
from management.models import Comment
from management.models import Comment, Like
admin.site.register(Comment)
admin.site.register(Comment)
admin.site.register(Like)

@ -1,3 +1,4 @@
environ
amqp==2.2.2
billiard==3.5.0.3
celery==4.1.0

@ -1 +0,0 @@
default_app_config = "service.apps.ServiceAppConfig"

@ -1,5 +0,0 @@
from django.contrib import admin
from service.models import MailBox, MailTemplate
admin.site.register(MailBox)
admin.site.register(MailTemplate)

@ -1,7 +0,0 @@
# -*- coding: utf-8 -*-
from django.apps import AppConfig
class ServiceAppConfig(AppConfig):
name = "service"
verbose_name = "Сервис"

@ -1,46 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-10-18 14:37
from __future__ import unicode_literals
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='MailBox',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('status', models.CharField(choices=[('Q', 'На очереди'), ('S', 'Отправлен'), ('E', 'Ошибка отправки'), ('D', 'Доставлен'), ('F', 'Ошибка доставки')], default='Q', max_length=1, verbose_name='Статус письма')),
('send_to', models.EmailField(max_length=254, verbose_name='Почта')),
('error_text', models.TextField(blank=True, verbose_name='Текст ошибки')),
('sent_date', models.DateTimeField(default=datetime.datetime.now, verbose_name='Время отправки')),
('title', models.CharField(max_length=255, verbose_name='Заголовок письма')),
('text', models.TextField(editable=False, verbose_name='Текст отправки')),
],
options={
'verbose_name': 'Письмо',
'verbose_name_plural': 'Письма',
},
),
migrations.CreateModel(
name='MailTemplate',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=255, verbose_name='Название шаблона')),
('text', models.TextField(default='', verbose_name='Шаблон')),
('kwarg', models.TextField(default='', verbose_name='Пораметры для шаблона')),
],
options={
'verbose_name': 'Шаблон письма',
'verbose_name_plural': 'Шаблоны писем',
},
),
]

@ -1,41 +0,0 @@
# coding=utf-8
from __future__ import unicode_literals
import datetime
from django.db import models
class MailTemplate(models.Model):
title = models.CharField(verbose_name='Название шаблона', max_length=255)
text = models.TextField(verbose_name='Шаблон', default='')
kwarg = models.TextField(verbose_name='Пораметры для шаблона', default='')
def __str__(self):
return '%s' % self.title
class Meta:
verbose_name = u'Шаблон письма'
verbose_name_plural = u'Шаблоны писем'
class MailBox(models.Model):
MAIL_STATUS = (
('Q', 'На очереди'),
('S', 'Отправлен'),
('E', 'Ошибка отправки'),
('D', 'Доставлен'),
('F', 'Ошибка доставки')
)
status = models.CharField(verbose_name='Статус письма', choices=MAIL_STATUS, default='Q', max_length=1)
send_to = models.EmailField(verbose_name='Почта')
error_text = models.TextField(verbose_name='Текст ошибки', blank=True)
sent_date = models.DateTimeField(verbose_name='Время отправки', default=datetime.datetime.now)
title = models.CharField(verbose_name='Заголовок письма', max_length=255)
text = models.TextField(verbose_name='Текст отправки', editable=False)
def __str__(self):
return '%s %s' % (self.send_to, self.get_status_display())
class Meta:
verbose_name = 'Письмо'
verbose_name_plural = 'Письма'

@ -1,9 +0,0 @@
import datetime
from celery.task import periodic_task
from service.models import MailBox
@periodic_task(run_every=datetime.timedelta(minutes=1))
def mailbox_send():
for box in MailBox.objects.filter(queue_date__lte=datetime.datetime.now(), status__in=['Q', 'W']).order_by('-queue_date'):
box.send_letter()

@ -1,280 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<title>404</title>
<script type="text/javascript" src='/static/js/jquery.min.js'></script>
<script src="/static/js/theater.min.js"></script>
<link rel="stylesheet" href="/static/css/bootstrap.min.css" type="text/css" />
<script type="text/javascript" src='/static/js/bootstrap.min.js'></script>
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="/static/img/favicon.ico" type="image/x-icon">
<meta name="description" content="{{ NAME }}" />
<meta property="og:title" content="{{ NAME }}" />
<meta property="og:description" content="{{ NAME }}" />
<meta property="og:image" content="{{ DOMAIN }}static/img/3818cc0ec1.png" />
<style>
@font-face{font-family:'FiraSans';src:url('/static/fonts/FiraSans-Heavy.otf');}
@font-face{font-family:'Cutive';src:url('/static/fonts/cour.ttf');}
.header__video-wrapp {
position:absolute;
top:0;
left: 0;
right: 0;
bottom: 0;
overflow: hidden;
}
.header__video-box {
position: absolute;
top:0;
left: 50%;
height: 100%;
}
.header__video {
display: inline-block;
transform: translateX(-50%);
min-height: 100%;
min-width: 100%;
}
.videoWrapper {
position: relative;
padding-bottom: 56.25%;
padding-top: 25px;
height: 0;
}
.videoWrapper iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
</style>
<script>
$(document).ready(function(){
if ($(window).width() > 500) {
$('.header__video-box').fadeIn('slow');
$('body').css('background', '#000');
setTimeout(obves, 3000)
} else {
$('img').css('left', 30).css('top', 50).fadeIn('slow');
$('[name=error]').css('left', 40).css('bottom', 50).fadeIn('slow');
$('[name=dialog]').css('top', '30%').fadeIn('slow');
$('.actor__content').css('width', 270).css('font-size', 15).css('font-weight', 'bold').css('text-align', 'center').css('background', '#000');
$('.actor__prefix').hide();
}
});
window.onresize = function(){
obves()
};
function obves(){
var left = $('video.header__video').offset().left;
if (left < 0){
left = 30
}
if ($(window).width() > 500) {
$('img').css('left', left + 50).fadeIn('slow', function () {
$('[name=dialog]').css('left', left + 50);
$('[name=dialog]').css('top', $('img').offset().top + 100).fadeIn('slow');
$('[name=error]').css('left', left + 50);
$('[name=error]').css('top', $('video.header__video').height() - ($('[name=error]').height() + 100)).fadeIn('slow')
}
);
} else {
$('img').css('left', 30).css('top', 50).fadeIn('slow');
$('[name=error]').css('left', 40).css('bottom', 50).fadeIn('slow');
}
}
</script>
</head>
<body style="text-align: center;background-image: url('/static/img/404.gif');background-size: cover;background-position: center;" class="scene">
<div style="width: 100%;text-align: center;">
<a href="/"><img src="/static/img/logowhite.png" style="position: absolute; top: 100px;z-index: 3000;display: none;"></a>
</div>
<div class="header__video-wrapp">
<div class="header__video-box" style="display: none;">
<video class="header__video" id='header__video' autoplay preload loop muted>
<source src='/static/video/404.webm' type="video/webm">
<source src="/static/video/404.ogv" type="video/ogg"/>
<source src='/static/video/404.mp4' type="video/mp4">
</video>
</div>
</div>
<div name="error" style="z-index: 3000;
position: absolute;margin: 0;display: none;">
<h1 style="font-size: 150px;color:#fff;font-family: FiraSans;letter-spacing: -10px;margin: 0;line-height: 100px;text-align: left;">404</h1>
<span style="font-size: 20px; color: #f8b539;font-weight: bold;
float: left;padding-left: 10px;">{% if request.GET.error %}{{ request.GET.error }}{% else %}error{% endif %}</span>
</div>
<script>
/*
* TheaterJS, a typing effect mimicking human behavior.
*
* Github repository:
* https://github.com/Zhouzi/TheaterJS
*
*/
var theater = theaterJS();
theater
.on('type:start, erase:start', function () {
theater.getCurrentActor().$element.classList.add('actor__content--typing')
})
.on('type:end, erase:end', function () {
theater.getCurrentActor().$element.classList.remove('actor__content--typing')
})
.on('type:start, erase:start', function () {
});
start_time = get_start_time();
function get_start_time(){
if ($(window).width() > 500) {
return 4500
} else {
return 1000
}
}
theater
.addActor('vader', { speed: 1, accuracy: 0.6 })
.addActor('luke')
.addScene('vader:', start_time)
.addScene('vader:Ты попал на эту страницу', 100)
.addScene('vader:в очень странный период моей жизни...', 800)
.addScene('luke:Что происходит?!', 800)
.addScene('vader:Ты сломал наш сервис', 400)
.addScene('luke:И что теперь делать?', 600)
.addScene('luke:Когда все починится?', 400)
.addScene('vader:Мы уже решаем эту проблему', 1600)
.addScene('vader:Ей конкретно занимается <b>Николай</b>', 1600)
.addScene('vader:Ты можешь перейти на <a href="/" target="__blank">главную страницу</a>', 1000)
.addScene('luke:Что мне там делать?', 600)
.addScene('vader:Можешь и там что-нибудь сломать', 600)
.addScene('vader:Тут сломал и там сломай.', 1600)
.addScene('vader:Если проблема долго не решится', 800)
.addScene('vader:Можешь написать на support@' + location.host, 1600)
.addScene('luke:Хорошо, спасибо', 600)
.addScene('vader:Если что -> <a href="/">главная страница</a>', 800)
</script>
<style>
*,
*:before,
*:after {
box-sizing: inherit;
}
html,
body {
padding: 0;
margin: 0;
}
html {
font-size: 14px;
height: 100%;
box-sizing: border-box;
}
body {
font-family: "Cutive", serif;
font-size: 1rem;
line-height: 1.4;
color: #222;
background-color: #ededed;
-webkit-transition: background-color 150ms ease-out, color 150ms ease-out;
transition: background-color 150ms ease-out, color 150ms ease-out;
}
.dark {
color: #ededed;
background-color: #222;
}
a {
color: inherit;
text-decoration: none;
border-bottom: 1px solid;
}
a:focus, a:hover {
box-shadow: inset 0 -8px 0 #c92b2b;
}
p {
opacity: .6;
margin: 0 0 .6rem 0;
-webkit-transition: opacity 300ms ease-out;
transition: opacity 300ms ease-out;
}
p:hover {
opacity: 1;
}
.scene {
padding: 6rem 2rem;
max-width: 800px;
margin: 0 auto;
}
.actor {
font-size: 1.8rem;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
margin-bottom: 2rem;
color: #fff;
}
.actor:last-of-type {
margin-bottom: 6rem;
}
.actor__content {
-webkit-box-flex: 1;
-webkit-flex-grow: 1;
-ms-flex-positive: 1;
flex-grow: 1;
width: 600px;
text-align: left;
}
.actor__prefix{
font-weight: bold;
font-size: 25px;
margin-right: 10px;
}
@-webkit-keyframes blink {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes blink {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.actor__content--typing::after {
content: '|';
-webkit-animation: blink 500ms infinite;
animation: blink 500ms infinite;
}
</style>
</body>
</html>

@ -1,291 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<title>500</title>
<script type="text/javascript" src='/static/js/jquery.min.js'></script>
<script src="/static/js/theater.min.js"></script>
<link rel="stylesheet" href="/static/css/bootstrap.min.css" type="text/css" />
<script type="text/javascript" src='/static/js/bootstrap.min.js'></script>
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="/static/img/favicon.ico" type="image/x-icon">
<meta name="description" content="{{ NAME }}" />
<meta property="og:title" content="{{ NAME }}" />
<meta property="og:description" content="{{ NAME }}" />
<meta property="og:image" content="{{ DOMAIN }}static/img/3818cc0ec1.png" />
<style>
@font-face{font-family:'FiraSans';src:url('/static/fonts/FiraSans-Heavy.otf');}
@font-face{font-family:'Cutive';src:url('/static/fonts/cour.ttf');}
.header__video-wrapp {
position:absolute;
top:0;
left: 0;
right: 0;
bottom: 0;
overflow: hidden;
}
.header__video-box {
position: absolute;
top:0;
left: 50%;
height: 100%;
}
.header__video {
display: inline-block;
transform: translateX(-50%);
min-height: 100%;
min-width: 100%;
}
.videoWrapper {
position: relative;
padding-bottom: 56.25%;
padding-top: 25px;
height: 0;
}
.videoWrapper iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
</style>
<script>
$(document).ready(function(){
if ($(window).width() > 500) {
$('.header__video-box').fadeIn('slow');
$('body').css('background', '#000');
setTimeout(obves, 3000)
} else {
$('img').css('left', 30).css('top', 50).fadeIn('slow');
$('[name=error]').css('left', 40).css('bottom', 50).fadeIn('slow');
$('[name=dialog]').css('top', '30%').fadeIn('slow');
$('.actor__content').css('width', 270).css('font-size', 15).css('font-weight', 'bold').css('text-align', 'center').css('background', '#000');
$('.actor__prefix').hide();
}
});
window.onresize = function(){
obves()
};
function obves(){
var left = $('video.header__video').offset().left;
if (left < 0){
left = 30
}
if ($(window).width() > 500) {
$('img').css('left', left + 50).fadeIn('slow', function () {
$('[name=dialog]').css('left', left + 50);
$('[name=dialog]').css('top', $('img').offset().top + 150).fadeIn('slow');
$('[name=error]').css('left', left + 50);
$('[name=error]').css('top', $('video.header__video').height() - ($('[name=error]').height() + 150)).fadeIn('slow')
}
);
} else {
$('img').css('left', 30).css('top', 50).fadeIn('slow');
$('[name=error]').css('left', 40).css('bottom', 50).fadeIn('slow');
}
}
</script>
</head>
<body style="text-align: center;background-image: url('/static/img/500bg.png');background-size: cover;background-position: center;" class="scene">
<div style="width: 100%;text-align: center;">
<a href="/"><img src="/static/img/logowhite.png" style="position: absolute; top: 150px;z-index: 3000;display: none;"></a>
</div>
<div class="header__video-wrapp">
<div class="header__video-box" style="display: none;">
<video class="header__video" id='header__video' autoplay preload loop muted>
<source src='/static/video/500.webm' type="video/webm">
<source src="/static/video/500.ogv" type="video/ogg"/>
<source src='/static/video/500.mp4' type="video/mp4">
</video>
</div>
</div>
<div name="dialog" style="position: absolute;display: none;">
<div class="actor" style="z-index: 3000;position: absolute;">
<div class="actor__prefix">-</div>
<div id="vader" class="actor__content"></div>
</div>
<div class="actor" style="z-index: 3000;position: absolute; margin-top: 50px;">
<div class="actor__prefix">-</div>
<div id="luke" class="actor__content"></div>
</div>
</div>
<div name="error" style="z-index: 3000;
position: absolute;margin: 0;display: none;">
<h1 style="font-size: 150px;color:#fff;font-family: FiraSans;letter-spacing: -10px;margin: 0;line-height: 100px;">500</h1>
<span style="font-size: 20px; color: #f8b539;
float: left;padding-left: 10px;">error</span>
</div>
<script>
/*
* TheaterJS, a typing effect mimicking human behavior.
*
* Github repository:
* https://github.com/Zhouzi/TheaterJS
*
*/
var theater = theaterJS();
theater
.on('type:start, erase:start', function () {
theater.getCurrentActor().$element.classList.add('actor__content--typing')
})
.on('type:end, erase:end', function () {
theater.getCurrentActor().$element.classList.remove('actor__content--typing')
})
.on('type:start, erase:start', function () {
});
start_time = get_start_time();
function get_start_time(){
if ($(window).width() > 500) {
return 4500
} else {
return 1000
}
}
theater
.addActor('vader', { speed: 1, accuracy: 0.6 })
.addActor('luke')
.addScene('vader:', start_time)
.addScene('vader:Ты попал на эту страницу', 100)
.addScene('vader:в очень странный период моей жизни...', 800)
.addScene('luke:Что происходит?!', 800)
.addScene('vader:Ты сломал наш сервис', 400)
.addScene('luke:И что теперь делать?', 600)
.addScene('luke:Когда все починится?', 400)
.addScene('vader:Мы уже решаем эту проблему', 1600)
.addScene('vader:Ей конкретно занимается <b>Николай</b>', 1600)
.addScene('vader:Ты можешь перейти на <a href="/" target="__blank">главную страницу</a>', 1000)
.addScene('luke:Что мне там делать?', 600)
.addScene('vader:Можешь и там что-нибудь сломать', 600)
.addScene('vader:Тут сломал и там сломай.', 1600)
.addScene('vader:Если проблема долго не решится', 800)
.addScene('vader:Можешь написать на support@' + location.host, 1600)
.addScene('luke:Хорошо, спасибо', 600)
.addScene('vader:Если что -> <a href="/">главная страница</a>', 800)
</script>
<style>
*,
*:before,
*:after {
box-sizing: inherit;
}
html,
body {
padding: 0;
margin: 0;
}
html {
font-size: 14px;
height: 100%;
box-sizing: border-box;
}
body {
font-family: "Cutive", serif;
font-size: 1rem;
line-height: 1.4;
color: #222;
background-color: #ededed;
-webkit-transition: background-color 150ms ease-out, color 150ms ease-out;
transition: background-color 150ms ease-out, color 150ms ease-out;
}
.dark {
color: #ededed;
background-color: #222;
}
a {
color: inherit;
text-decoration: none;
border-bottom: 1px solid;
}
a:focus, a:hover {
box-shadow: inset 0 -8px 0 #c92b2b;
}
p {
opacity: .6;
margin: 0 0 .6rem 0;
-webkit-transition: opacity 300ms ease-out;
transition: opacity 300ms ease-out;
}
p:hover {
opacity: 1;
}
.scene {
padding: 6rem 2rem;
max-width: 800px;
margin: 0 auto;
}
.actor {
font-size: 1.8rem;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
margin-bottom: 2rem;
color: #fff;
}
.actor:last-of-type {
margin-bottom: 6rem;
}
.actor__content {
-webkit-box-flex: 1;
-webkit-flex-grow: 1;
-ms-flex-positive: 1;
flex-grow: 1;
width: 600px;
text-align: left;
}
.actor__prefix{
font-weight: bold;
font-size: 25px;
margin-right: 10px;
}
@-webkit-keyframes blink {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes blink {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.actor__content--typing::after {
content: '|';
-webkit-animation: blink 500ms infinite;
animation: blink 500ms infinite;
}
</style>
</body>
</html>

@ -1,73 +0,0 @@
{% extends 'base_index.html' %}
{% load static %}
{% load course_filter %}
{% block page_title %}Доступ на страницу закрыт{% endblock %}
{% block title %}Доступ запрещен{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">
<i class="glyphicon glyphicon-lock"></i> Доступ на страницу закрыт
<a href="/" style="font-size: 15px; color:cornflowerblue;border-bottom: 1px dotted cornflowerblue;">
Перейти на главную страницу
</a>
</h1>
</div>
</div>
</div>
<div class="wrapper-md">
<table width="100%" height="100%">
<tr width="100%">
<td width="100%" valign="middle" align="center">
<img src="/static/img/denied.png"><br><Br>
<a type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal" style=" margin-right: 20px;">
<span class="glyphicon glyphicon-plus"></span>&#160;Регистрация
</a>
<a type="button" class="btn btn-success btn-lg" data-toggle="modal" data-target="#myModal1">
<span class="glyphicon glyphicon-log-in"></span>&#160;Вход
</a>
</td>
</tr>
</table>
</div>
</div>
{% if request.user.is_authenticated %}
<div class="col w-md bg-white-only b-l bg-auto no-border-xs aside-col">
<div class="padder-md">
<!-- streamline -->
<div class="m-b m-t text-md">Последняя активность</div>
<div class="streamline b-l m-b">
<div class="sl-item b-success b-l">
<div class="m-l">
<div class="text-muted label-small">минуту назад<br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6</div>
<p>Ваше <a href class="text-info">домашнее задание</a> одобрено преподавателем.</p>
</div>
</div>
<div class="sl-item b-danger b-l">
<div class="m-l">
<div class="text-muted label-small">23:30 <br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6.</div>
<p>Ваше домашнее задание проверено преподавателем. Вам необходимо <a href class="text-info">провести работу над ошибками</a></p>
</div>
</div>
<div class="sl-item b-info b-l">
<div class="m-l">
<div class="text-muted label-small">понедельник, 03.02.2015<br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6.</div>
<p>Преподаватель <a href class="text-info">оставил комментарий</a></p>
</div>
</div>
</div>
<!-- / streamline -->
</div>
</div>
{% endif %}
{% endblock %}

@ -1,369 +0,0 @@
{% load static %}
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>{% block title %}{% endblock %} {{ NAME }}</title>
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="/static/img/favicon.ico" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<link rel="stylesheet" href="/static/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/animate.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/font-awesome.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/simple-line-icons.css" type="text/css" />
<link rel="stylesheet" href="/static/css/font.css" type="text/css" />
<link rel="stylesheet" href="/static/css/app.css" type="text/css" />
<link rel="stylesheet" href="/static/css/aside.css" type="text/css" />
<link rel="stylesheet" href="/static/css/kladr.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/bootstrap-datepicker.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/bootstrap-datepicker.standalone.min.css" type="text/css" />
<link href="/static/css/jqiuery_dialogs.css" rel="stylesheet" />
<link href="/static/css/jquery.Jcrop.css" rel="stylesheet" />
<style>
input{
font-weight: bold;
color: #666 !important;
font-size: 18px !important;
}
</style>
{% block head %}
{% endblock %}
</head>
<body>
<div class="modal fade" id="image-workshop" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="z-index: 2000;">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="close_workshop()"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="validateTips" style=" text-align: center;
padding: 10px;
background-color: #f1f1f1;
margin-top: 10px;
margin-bottom: 10px;">
Обрежте изображение, если это необходимо.
</div>
<div class="image_change_workshop">
<div class="image_change_workshop_place" id="id">
<img name="image_change_workshop" src="/static/img/ui-anim_basic_16x16.gif">
</div>
</div>
<div style=" width: 100%;
background-color: #ffc;
padding: 10px;
margin-top: 10px;
text-align: center;">
<button type="button" class="btn btn-warning btn-lg" onclick="save_workshop()">Сохранить</button>
<button type="button" class="btn btn-warning btn-lg" onclick="close_workshop()">Назад</button>
</div>
<p style="text-align: center; padding-top: 10px; display: none;" name='file_load_error'>
Ошибка загрузки файла
</p>
</div>
</div>
</div>
</div>
<div class="modal fade" id="img-load" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="z-index: 2000;">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="$('#form_image_load_file_input').replaceWith($('#form_image_load_file_input').clone())"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<p style="text-align: center;">
Вы можете загрузить изображение в формате JPG, GIF или PNG.
<br> <b>Минимальный размер изображения 256x256</b></p>
<div class="progress_img_load" style="display: none;">
<p style="text-align: center;"><img src="/static/img/ui-anim_basic_16x16.gif" style="margin: 20px auto;"></p>
</div>
<div class="form_img_load">
<form enctype='multipart/form-data'
action='/storage/upload_file/'
method='post'
name='load_img'
id="form_image_load_form"
target='hidden_frame'
class="load_file" style=" margin-bottom: 20px;">
<input type='hidden' name='MAX_FILE_SIZE' value='64000'>
<input id="form_image_load_file_input" name='file' type='file' accept="image/x-png, image/gif, image/jpeg" data-icon="false" data-classbutton="btn btn-default" data-classinput="form-control inline v-middle input-s" tabindex="-1"
style="outline: 0;background: #ffc; padding: 5px 10px;border-radius: 5px;margin: auto;position: absolute; clip: rect(0px, 0px, 0px, 0px);">
<div class="bootstrap-filestyle input-group">
<span tabindex="0" class="group-span-filestyle input-group-btn" style="text-align: center;">
<label for="form_image_load_file_input" class="btn btn-default ">
<span class="glyphicon glyphicon-save-file"></span> Загрузить изображение
</label>
</span>
</div>
<input type="text" name="clip_file_id" readonly value="0" style="display: none;">
</form>
<input name="load_img" id="form_image_load_hidden_input" value="0" readonly style="display: none">
</div>
</div>
</div>
</div>
</div>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/ru_RU/sdk.js#xfbml=1&version=v2.4&appId=1129937553688972";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="app app-header-fixed ">
<!-- header -->
<header id="header" class="app-header navbar " role="menu" style=" background-color: #fdfdfd;">
<!-- navbar header -->
<div class="navbar-header bg-info dker" style="text-align: center;">
{% if request.user.is_authenticated %}
<button class="pull-right visible-xs " target=".navbar-collapse" style="padding: 12px 17px;">
<a href="/access/logout/"><i class="glyphicon glyphicon-log-out"></i></a>
</button>
<button class="pull-right visible-xs " target=".navbar-collapse" style="padding: 10px;">
<a href="/access/profile/" class="pull-right visible-xs ">
<span class="w-auto-folded avatar thumb-xs">
<img src="/static/img/user_photo.jpg" class="img-circle" alt="...">
</span>
</a>
</button>
<!-- / navbar right -->
{% else %}
<button class="pull-right visible-xs " target=".navbar-collapse">
<a type="button" data-toggle="modal" data-target="#myModal1" ui-sref="access.signin"><i class="glyphicon glyphicon-log-out"></i></a>
</button>
<button class="pull-right visible-xs " target=".navbar-collapse">
<a type="button" data-toggle="modal" data-target="#myModal" ui-sref="access.signin"><i class="glyphicon glyphicon-plus"></i></a>
</button>
{% endif %}
<!-- brand -->
<a href="/" class="navbar-brand text-lt" style="padding-right: 0;">
<img src="/static/img/logo.png" alt="." class="" style=" max-width: 200px;
margin-left: 20px;">
</a>
<!-- / brand -->
</div>
<!-- / navbar header -->
</header>
<!-- / header -->
<style>
.app-content-body:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
.hbox {
display: inline-block;
vertical-align: middle;
}
/* добавим горизонтальное центрирование */
.app-content-body {
text-align: center;
}
input#error{
background: red;
}
</style>
<!-- content -->
<div id="content" class="app-content" role="main" style="margin: 20px auto 0 auto;width: 100%;">
<div class="app-content-body " style="padding: 0;">
<div class="hbox hbox-auto-xs hbox-auto-sm" style="text-align: center;">
<div class="progress" style=" width: 570px;
text-align: center;
margin: 40px auto 0 auto;
background-color: #ccc;
border-radius: 5px 5px 0 0;">
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"
style="width: {% if step == '1' %}0{% endif %}{% if step == '2' %}33%{% endif %}{% if step == '3' %}66%{% endif %}"
>
</div>
</div>
<div class="btn-group" data-toggle="buttons">
<label step_number="1" style="cursor: default;" class="btn btn-primary {% if step == '1' %}active{% endif %}" onchange="click_label('1')">
<input type="radio" name="options" id="step_1" step_number="1" autocomplete="off"> <b>1 - Придумайте пароль</b>
</label>
<label step_number="2" style="cursor: default;" class="btn btn-primary {% if step == '2' %}active{% endif %}" onchange="click_label('2')">
<input type="radio" name="options" id="step_2" step_number="2" autocomplete="off"> <b>2 - Расскажите о себе</b>
</label>
<label step_number="3" style="cursor: default;" class="btn btn-primary deactivate {% if step == '3' %}active{% endif %}" onchange="click_label('3')">
<input type="radio" name="options" id="step_3" step_number="3" autocomplete="off"> <b>3 - Загрузите фотографию</b>
</label>
</div>
<ul style="width: 570px;
margin: 0 auto;
list-style: none;
background-color: #fff;
padding: 20px;
height: 100%;
border-radius: 0 0 5px 5px; border-bottom: 5px solid #666;border-left: 1px solid #ccc;
border-right: 1px solid #ccc;">
<li id="step_1" step_number="1" {% if step != '1' %}style="display: none;" {% endif %}>
<h3 style="margin-top: 10px;margin-bottom: 30px;font-weight: bold;">Придумайте пароль</h3>
<p name="error" style="background: #ffc; padding: 10px;"></p>
<form onsubmit="return false;" name="step_1">
<input readonly value="1" style="display: none;" name="step">
<p style=" margin-bottom: 5px;
text-align: left;
font-weight: bold;
margin-left: 5px;
font-size: 16px; color: #666;">Введите пароль</p>
<input type="password" name="password1" class="form-control"
style="margin-bottom: 20px; text-align: center; border-left: 5px solid;font-size: 50px;
font-weight: bold;
padding-top: 0px;" autocomplete="off">
<p style=" margin-bottom: 5px;
text-align: left;
font-weight: bold;
margin-left: 5px;
font-size: 16px; color: #666;">Повторите пароль</p>
<input type="password" name="password2" class="form-control"
style="margin-bottom: 20px; text-align: center; border-left: 5px solid;font-size: 50px;
font-weight: bold;
padding-top: 0px;" autocomplete="off">
<p style="margin-top: 20px;">
<button step_number="1" class="btn btn-warning btn-lg" onclick="check_step(1); return false;">Продолжить</button>
</p>
<input name="token" style="display: none;" readonly type="text" value="{{ token }}">
<input name="email" style="display: none;" readonly type="text" value="{{ email }}">
</form>
</li>
<li id="step_2" step_number="2" {% if step != '2' %}style="display: none;" {% endif %}>
<h3 style="margin-top: 10px;margin-bottom: 30px;font-weight: bold;">Расскажите о себе</h3>
<p name="error" style="background: #ffc; padding: 10px;"></p>
<form onsubmit="return false;" name="step_2">
<input readonly value="2" style="display: none;" name="step">
<input type="text" name="fname" class="form-control" placeholder="Фамилия" style="margin-bottom: 20px; border-left: 5px solid;">
<input type="text" name="name" class="form-control" placeholder="Имя" style="margin-bottom: 20px; border-left: 5px solid;">
<input type="text" name="phone" class="form-control" {% if phone %}value="{{ phone }}"{% endif %} placeholder="Телефон" style="margin-bottom: 20px; border-left: 5px solid;">
<input type="text" name="city" class="form-control" placeholder="Город"
style="margin-bottom: 20px;" autocomplete="off">
<div class="input-group date">
<input type="text" class="form-control" placeholder="Дата рождения" name="bday" ><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
<p style="margin-top: 20px;">
<button step_number="2" class="btn btn-warning btn-lg" onclick="check_step(2); return false;">Продолжить</button>
</p>
<input name="token" style="display: none;" readonly type="text" value="{{ token }}">
<input name="email" style="display: none;" readonly type="text" value="{{ email }}">
</form>
</li>
<li id="step3" step_number="3" {% if step != '3' %}style="display: none;" {% endif %}>
<h3 style="margin-top: 10px;margin-bottom: 30px;font-weight: bold;">Загрузите фотографию</h3>
<p name="error" style="background: #ffc; padding: 10px;"></p>
<form onsubmit="return false;" name="step_3">
<img src="/static/img/a8.jpg" alt="..." class="img-thumbnail" name="avatar" style="margin-bottom: 10px;">
<p style=" margin-bottom: 50px;"><a href="#" style=" color: #666;
border-bottom: 1px dotted #999;
padding-bottom: 3px;" onclick="load_image('avatar', 'big')">Загрузить фотографию</a></p>
<p style="margin-top: 20px;">
<button step_number="3" class="btn btn-warning btn-lg" onclick="check_step(3); return false;">Завершить</button><Br>
<a href="#" style="color: #999; float: right;
border-bottom: 1px dotted #999;
padding-bottom: 1px;" onclick="check_step(3); return false;">Пропустить</a>
</p>
<input readonly value="3" style="display: none;" name="step">
<input name="avatar_code" style="display: none;" readonly type="text">
<input name="token" style="display: none;" readonly type="text" value="{{ token }}">
<input name="email" style="display: none;" readonly type="text" value="{{ email }}">
</form>
</li>
<li id="step4" step_number="4" {% if step != '4' %}style="display: none;" {% endif %}>
<h3>Поздравляем!</h3>
<div style="text-align: justify;">
Вы приняты в сообщество &#0151 &#0171{{ NAME }}&#0187.<br>
</div>
<p style="text-align: center;"><img src="/static/img/1440723611_check.png"> </p>
<form method="post" action="/access/fast_auth/" name="final_form">
{% csrf_token %}
<p style="text-align: center; margin-top: 10px;"><button class="btn btn-success">Начать изучение</button></p>
</form>
<p style="text-align: justify;margin-bottom: 40px;">С Уважением,<br>{{ NAME }}.</p>
</li>
</ul>
<div style="width: 570px; margin: auto;">
<input id="checkBox" type="checkbox" style="width: 20px; height: 20px; margin-top: 0px;">
<span>Регистрируясь, вы соглашаетесь с <a href="/oferta">договором-оферты</a></span>
</div>
<p style="text-align: left;margin: 20px auto;width: 530px;">
<i class="glyphicon glyphicon-copyright-mark"></i> {% now "Y" %}
<span style="float: right;">{{ NAME }}</span>
</p>
<iframe name="hidden_frame" id="form_image_load_hidden_frame" style="width:0; height:0; border:0;display: none;"></iframe>
</div>
</div>
</div>
</div>
<!-- / content -->
<script type="text/javascript" src='/static/js/jquery.min.js'></script>
<script type="text/javascript" src='/static/js/bootstrap.min.js'></script>
<script src="/static/js/jquery.maskedinput.min.js" type="text/javascript"></script>
<script type="text/javascript" src='/static/js/regex_check.js'></script>
<script type="text/javascript" src='/static/js/apis/management.js'></script>
<script type="text/javascript" src='/static/js/apis/access.js'></script>
<script type="text/javascript" src='/static/js/news.js'></script>
<script type="text/javascript" src='/static/js/tools.js'></script>
<script type="text/javascript" src="/static/js/apis/activation.js"></script>
<script type="text/javascript" src="/static/js/apis/kladr.min.js"></script>
<script type="text/javascript" src="/static/js/bootstrap-datepicker.min.js"></script>
<script type="text/javascript" src="/static/js/bootstrap-datepicker.ru.min.js"></script>
<script type="text/javascript" src="/static/js/apis/inputmask.min.js"></script>
<script type="text/javascript" src="/static/js/apis/jquery.inputmask.min.js"></script>
<script type="text/javascript" src="/static/js/apis/image_loader.js"></script>
<script type="text/javascript" src="/static/js/jquery.Jcrop.min.js"></script>
<input name="load_image_place_name" style="display: none;" readonly>
<input name="load_image_placed_size" style="display: none;" readonly>
<input name="load_image_width" style="display: none;" readonly>
<input name="load_image_height" style="display: none;" readonly>
<input name="load_image_x1" style="display: none;" readonly>
<input name="load_image_x2" style="display: none;" readonly>
<input name="load_image_y1" style="display: none;" readonly>
<input name="load_image_y2" style="display: none;" readonly>
<input name="REQUEST_USER_ID" style="display: none;" readonly value="{{ request.user.id }}">
<script type="text/javascript">
$(function(){
function release(){
jcrop_api.release();
$('#crop').hide();
}
});
$('.input-group.date').datepicker({
todayBtn: false,
language: "ru",
orientation: "top auto",
keyboardNavigation: false,
autoclose: true,
toggleActive: true,
defaultViewDate: { year: 1990, month: 11, day: 18 }
});
</script>
{% block js %}
{% endblock %}
</body>
</html>

@ -1,140 +0,0 @@
{% extends 'base_index.html' %}
{% block modals %}
<!-- Modal Смена пароля-->
<div class="modal fade" id="new_bill" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('new_bill')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1441326667_certificate.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Новый счет</p>
<form action="" name="new_bill" onsubmit="return false;">
<p class="error" id="error_new_bill"></p>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Пользователь</p>
<input type="text" name="new_bill_user_id" readonly style="display: none;">
<input type="text" name="new_bill_user" style="background-color: #ffc;" readonly>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Услуга</p>
<select type="text" name="new_bill_service" onchange="$('[name=new_bill_checked_service]').val($('[name=new_bill_service]').find('option:selected').attr('id'))" style=" width: 100%;
height: 40px;
background-color: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;
margin-bottom: 10px;">
</select>
<input name="new_bill_checked_service" type="text" readonly style="display: none;">
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Ваш комментарий</p>
<textarea name="new_bill_comment" style="width: 100%;background: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;"></textarea>
<button type="button" class="btn btn-warning btn-lg" onclick="create_new_bill()">Отправить</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block asside %}
<aside id="aside" class="app-aside hidden-xs bg-dark" style="background: #3a3f51;">
<div class="aside-wrap">
<div class="navi-wrap">
<!-- user -->
<div class="clearfix hidden-xs text-center" id="aside-user">
<div class="dropdown wrapper">
<a href="/management/profile/">
<span class="thumb-lg w-auto-folded avatar m-t-sm">
<img src="/static/img/a8.jpg" class="img-full" alt="...">
</span>
</a>
<a href="#">
<span class="clear">
<span class="block m-t-sm">
<strong class="font-bold text-lt">{{ request.user.get_short_name }}</strong>
</span>
<span class="text-muted text-xs block">{{ request.user.get_role_display }}</span>
</span>
</a>
</div>
</div>
<!-- / user -->
<nav ui-nav="" class="navi clearfix">
<ul class="nav">
<li class="active">
<a href="#">
<i class="icon-user icon text-warning-dk"></i>
<span>Пользователи</span>
</a>
</li>
<li>
<a href="/management/history/">
<i class="glyphicon glyphicon-stats text-warning-dk"></i>
<span>История</span>
</a>
</li>
</ul>
</nav>
<!-- nav -->
</div>
</div>
</aside>
{% endblock %}
<!-- / aside -->
<!-- content -->
{% block content %}
<div class="col">
<!-- main header -->
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">Пользователи системы</h1>
<!-- <small class="text-muted">Welcome to angulr application</small> -->
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row">
<form onsubmit="return false;">
<p style="font-size: 20px; font-weight: bold;margin-left: 2%;">Поиск пользователей</p>
<input name="user_search" type="text" style="margin-right: 1%; width: 85%; margin-left: 1%;padding: 10px;font-size:20px;font-weight: bold; border: 2px solid yellow;" inpmask="phone">
<button onclick="search_users($('[name=user_search]').val())"
style="float: right; width: 12%;margin-right: 1%;padding: 10px;font-weight: bold;font-size: 20px;">Поиск</button>
</form>
<p style="text-align: center;padding: 10px;display: none;" name="load_user_list"><img src="/static/img/ui-anim_basic_16x16.gif"></p>
<p style="text-align: center;padding: 10px;display: none;margin: 0 10px;background: #fff;" name="empty_user_list">Результатов нет</p>
<table width="100%" style="margin-top: 20px;">
<thead>
<tr style="border-bottom: 1px dotted #ccc;">
<td style="padding: 10px; background: #fff;border-right: 1px dotted #ccc;">Пользователь</td>
<td style="padding: 10px; background: #fff;border-right: 1px dotted #ccc;">Телефон</td>
<td style="padding: 10px; background: #fff;">Действие</td>
</tr>
</thead>
<tbody name="search_results">
</tbody>
</table>
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
<!-- / right col -->
{% endblock %}

@ -1,84 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Все доступные достижения{% endblock %}
{% block head %}
<link rel="stylesheet" href="/static/css/pie_chart.css" type="text/css" />
<script>
window.courses = [];
</script>
{% endblock %}
{% block content %}
<div class="col" style="width: 100%;">
<!-- main header -->
<div class="wrapper-md col-md-9 col-sm-12 col-xs-12 col-lg-9" style="text-align: center;">
<h3 style="margin-top: 0;font-weight: bold;text-align: left;
margin-bottom: 20px;
margin-left: 30px; border-bottom: 1px dotted #ccc;
padding-bottom: 10px;"><i class="glyphicon glyphicon-star" style="color: #fcb813;margin-right: 5px;"></i> Все доступные достижения системы</h3>
{% for achievement in achievements %}
<div class="thumb-xl" style="text-align: center;
margin: 10px;">
<img src="{{ achievement.icon.url }}" alt="..." class="m-b-xs" style=" width: 125px;">
<small class="block">{{ achievement.title }}</small>
</div>
{% empty %}
<h3 style="text-align: center; font-weight: bold">Достижений еще нет</h3>
{% endfor %}
</div>
<div class="wrapper-md col-md-3 col-sm-12 col-xs-12 col-lg-3">
<h3 style="margin-top: 0;font-weight: bold;
margin-bottom: 20px;
margin-left: 30px; border-bottom: 1px dotted #ccc;
padding-bottom: 10px;"><i class="glyphicon glyphicon-ok-sign" style="color: #fcb813;margin-right: 5px;"></i> Получаемые навыки</h3>
{% for course, points in skills.items %}
<script>
{% if points %}
window.courses.push({{ course.0 }})
{% endif %}
</script>
<div class="panel panel-default">
<div class="panel-heading font-bold">{{ course.1 }} <span style="float: right; color: #666;"><i class="glyphicon glyphicon-ok-sign"></i></span></div>
<div class="text-center wrapper m-b-sm" style="width: 100%">
{% if points %}
<div id="pieChart{{ course.0 }}" class="chart" style="width: 100%;height: 250px;"></div>
{% else %}
<h3 style="font-weight: bold;text-align: center;margin: 10px 0;">Навыков не назначено</h3>
{% endif %}
</div>
<ul class="list-group no-radius">
{% for key, value in points.items %}
<li class="list-group-item" name="skill_row{{ course.0 }}" skill_title="{{ key }}" skill_color="{{ value.color }}" skill_value={{ value.size }}>
<span class="pull-right"><b>{{ value.size }}</b> очков</span>
<span class="label font-normal text-white" style="background: {{ value.color }};font-size: 14px;">{% if value.icon %}<img src="{{ value.icon.url }}" style="margin-top: -1px;width: 15px;
height: 15px;
margin-right: 5px;">{% endif %}{{ key }}</span>
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>
<!-- / main header -->
</div>
{% endblock %}
{% block js %}
<script src="/static/js/pie_chart.js"></script>
<script src="/static/js/clipboard.min.js"></script>
<script>
$(function(){
for (var c in courses){
var result = [];
var skills = $('li[name=skill_row'+courses[c]+']');
for(var i=0;i<skills.length;i++){result.push({'title': $(skills[i]).attr('skill_title'), 'value': parseInt($(skills[i]).attr('skill_value'), 10), 'color':$(skills[i]).attr('skill_color')})}
$("#pieChart"+courses[c]).drawPieChart(result);
}
});
</script>
{% endblock %}

@ -1,35 +0,0 @@
{% extends 'base_index.html' %}
{% load course_filter %}
{% block title %}История активности {% endblock %}
{% block content %}
<div class="col">
<!-- main header -->
<div class="wrapper-md">
<div class="row">
<h3 style="margin-top: 0;
margin-bottom: 20px;
margin-left: 30px;"><i class="glyphicon glyphicon-th-list"></i> История активности</h3>
<ul class="timeline">
{% for i in b_actions %}
<li class="tl-item tl-left">
<div class="tl-wrap {{ i.get_a_type_display }}">
<div class="tl-content panel padder b-a col-lg-11">
<span class="arrow left pull-up hidden-left"></span>
<span class="arrow right pull-up visible-left"></span>
<div class="text-lt m-b-sm" style="margin-left: 15px;font-weight: bold; font-size: 16px;margin-bottom: 5px;">{{ i.place }}<span class="tags l-h-2x" style="margin-left: 10px;
font-weight: normal;
font-size: 13px;">{{ i.date }}</span></div>
<div class="panel-body p-b-none pull-in b-t b-light" style="margin-left: 10px;padding-bottom: 20px !important;">
<div>{{ i.text|safe }}</div>
</div>
</div>
</div>
</li>
{% endfor %}
</ul>
</div>
</div>
<!-- / main header -->
</div>
{% endblock %}

@ -1,117 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Статьи{% endblock %}
{% block head %}
<link rel="stylesheet" type="text/css" href="/static/css/flickity.css" />
<link rel="stylesheet" type="text/css" href="/static/css/component.css" />
<script src="/static/js/modernizr.custom.js"></script>
<script>
window.favorite_count = 0;
</script>
{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3" style=" margin-left: 10px !important;">
Обучающие статьи
<div style="float: right;font-size: 12px;color: #999;" class="hidden-xs">
<span class="hidden-xs">Все статьи</span>
<label class="i-switch bg-success" style="top: 5px;
position: relative; margin: 0 5px;">
<input type="checkbox" name="by_radio">
<i></i>
</label><span class="hidden-xs">Непрочитанные</span>
</div>
</h1>
</div>
</div>
</div>
<div class="nav-tabs_self filter" name="section_list">
<button class="action filter__item filter__item--selected" data-filter="*">Все статьи <span style="margin-left: 5px;" class="label label-success" name="all_count">{{ articles|length }}</span></button>
<div style=" float: right;
padding: 10px 0;
color: #ccc;
font-size: 13px;" data-toggle="tooltip" data-placement="top" title="Всего просмотров" class="hidden-xs"><i class="glyphicon glyphicon-eye-open" style=" top: 2px;
left: -5px;"></i> <span name="all_article_views">{{ views }}</span></div>
</div>
<!-- Main view -->
<div class="view">
<!-- /grid-->
<section class="grid">
<img class="grid__loader" src="/static/img/preloader.gif" width="60" alt="Loader image">
<div class="grid__sizer"></div>
<p style="clear: both;"></p>
{% for article in articles %}
<script>
if ($('[section_view={{ article.section.id }}]').length == 0){
$('[name=section_list]').append('<button class="action filter__item" data-filter=".article_section_{{ article.section.id }}" section_view="{{ article.section.id }}">{{ article.section.title }} <span style="margin-left: 5px;" class="label label-success" name="{{ article.section.id }}_count">0</span></button>')
}
</script>
<div article_id="{{ article.id }}" class="grid__item article_section_{{ article.section.id }} {% if article.favorite %}article_section_favorite{% endif %}" section="{{ article.section.id }}" favorite="{{ article.favorite }}" viewed="{{ article.view }}">
<div class="favorite"><i class="glyphicon glyphicon-star" id="{% if article.favorite %}active{% endif %}" onclick="{% if not article.favorite %}set_favorit(this){% else %}unset_favorit(this){% endif %}" article_id="{{ article.id }}" data-toggle="tooltip" data-placement="top" title="Добавить в избранное"></i></div>
<a href="{{ DOMAIN }}/library/article/{{ article.slug }}"><img style="width:100%;" src="{{ article.preview.image }}"></a>
<div class="content">
<div class="section_block"><span class="section">{{ article.section.title }}</span><span class="date">{{ article.date }}</span></div>
<div class="title"><a href="{{ DOMAIN }}/library/article/{{ article.slug }}">{{ article.preview.title }}</a></div>
<div class="preview">{{ article.preview.description }}</div>
{% if article.tags %}
<div class="tags">{% for tag in article.tags.content %}<span class="tag">#{{ tag.name }}</span>{% endfor %}</div>
{% endif %}
</div>
<div class="bottom">
<a href="{{ DOMAIN }}/library/article/{{ article.slug }}"><button class="btn" role="button">Читать статью</button></a>
<div class="icons">
<span class="favorite_length" data-toggle="tooltip" data-placement="top" title="В избранном"><i class="glyphicon glyphicon-star"></i> {{ article.favorites.count }}</span>
<span class="views" data-toggle="tooltip" data-placement="top" title="Просмотров"><i class="glyphicon glyphicon-eye-open"></i> {{ article.views.count }}</span>
<span class="likes" data-toggle="tooltip" data-placement="top" title="Поставлено лайков"><i class="glyphicon glyphicon-thumbs-up"></i> {{ article.likes.count }}</span>
</div>
<div style="margin: 0;clear: both;"></div>
</div>
<script>
if (!window.section_{{ article.section.id }}){
window.section_{{ article.section.id }} = 1;
} else {
window.section_{{ article.section.id }} += 1;
}
{% if article.favorite %}
window.favorite_count += 1;
{% endif %}
$('[name={{ article.section.id }}_count]').html(window.section_{{ article.section.id }});
//check_favorit({{ article.id }})
</script>
</div>
{% endfor %}
<script>
$('[name=section_list]').append('<button {% if not request.user.is_authenticated %}onclick="$(\'#myModal1\').modal(\'show\')"{% endif %} style="border: 1px solid #ffcd00; border-radius: 3px;" name="favorite_button" class="action filter__item" data-filter=".article_section_favorite">Избранное <span style="margin-left: 5px;" class="label label-success" name="favorite_count">0</span> </button>')
</script>
</section>
</div>
</div>
{% endblock %}
{% block js %}
<script src="/static/js/isotope.pkgd.min.js"></script>
<script src="/static/js/flickity.pkgd.min.js"></script>
<script src="/static/js/articles_sort.js"></script>
<script src="/static/js/library.js"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip();
if ($('[favorite=True]').length < 0){
$('[name="favorite_count"]').fadeOut('fast');
} else {
$('[name="favorite_count"]').html(window.favorite_count);
}
setInterval(function () {
get_all_views_length()
}, 3000)
})
</script>
{% endblock %}

@ -1,244 +0,0 @@
{% extends 'reports/base_index.html' %}
{% load comment_filter %}
{% block title %}Все комментарии{% endblock %}
{% block head %}
<script>
window.load_process_interval = false;
window.comments_stack1 = [];
window.comments_stack2 = [];
function get_comment_text(id) {
var r = '';
$.ajax({
type: 'GET',
url: '/courses/get_comment_text/',
async: false,
data: {'comment': id},
success: function (data) {
if (data['code'] == '1') {
r = data['data']
}
}
});
return r;
}
function load_comments_texts(){
start_load();
function start_load(){
window.load_process_interval = setInterval( function(){load()}, 100);
}
function stop_load_process(){
clearInterval(window.load_process_interval);
delete window.load_process_interval;
$('[name=preload_status]').html('Загружено')
}
function load(){
var data;
if (window.comments_stack2 && window.comments_stack2.length > 0){
data = window.comments_stack2.pop();
$('[name=preload_status]').html('Загрузка: ' + (window.comments_stack2.length*100/parseInt($('[name=course_length]').html(), 10)).toFixed(2) + '%');
$('[readable_comment='+data+']').html('<iframe f_name="{{ comment.id }}" style="width: 100%; border: 0;" srcdoc="<div class=\'m-b-xs\' style=\'font-family: exo_2regular, Helvetica Neue, Helvetica, Arial, sans-serif;font-size: 14px;-webkit-font-smoothing: antialiased;line-height: 1.42857143;color: #58666e;background-color: transparent;\'>'+get_comment_text(data)+'</div>"></iframe>');
} else if (window.comments_stack3 && window.comments_stack3.length > 0) {
data = window.comments_stack1.pop();
$('[name=preload_status]').html('Загрузка: ' + (window.comments_stack3.length*100/parseInt($('[name=course_length]').html(), 10)).toFixed(2) + '%');
$('[readable_comment='+data+']').html('<iframe f_name="{{ comment.id }}" style="width: 100%; border: 0;" srcdoc="<div class=\'m-b-xs\' style=\'font-family: exo_2regular, Helvetica Neue, Helvetica, Arial, sans-serif;font-size: 14px;-webkit-font-smoothing: antialiased;line-height: 1.42857143;color: #58666e;background-color: transparent;\'>'+get_comment_text(data)+'</div>"></iframe>');
} else if (window.comments_stack1 && window.comments_stack1.length > 0){
data = window.comments_stack1.pop();
$('[name=preload_status]').html('Загрузка: ' + (window.comments_stack1.length * 100 / parseInt($('[name=course_length]').html(), 10)).toFixed(2) + '%');
$('[readable_comment=' + data + ']').html('<iframe f_name="{{ comment.id }}" style="width: 100%; border: 0;" srcdoc="<div class=\'m-b-xs\' style=\'font-family: exo_2regular, Helvetica Neue, Helvetica, Arial, sans-serif;font-size: 14px;-webkit-font-smoothing: antialiased;line-height: 1.42857143;color: #58666e;background-color: transparent;\'>' + get_comment_text(data) + '</div>"></iframe>');
} else {
stop_load_process();
}
}
}
function comment_response(id, text, type, material) {
$.ajax({
type: 'POST',
url: '/courses/sent_comment_response/',
data: {'id': id, 'text': text, 'type': type, 'material_id': material},
success: function (data) {
if (data['code'] == '0') {
console.log(data['response']);
}
}
});
}
</script>
<style>
.saw{
display: none;
}
.no_read{
background: #f5fce5;
transition: 0s 9999999s;
}
.no_read:hover{
background: #fff;
transition: 1s;
}
.readed{
background: #fff;
}
</style>
{% endblock %}
{% block content %}
<div style="padding: 20px;">
<div style="clear: both;
float: left;
width: 100%;
margin-bottom: 20px;
border-bottom: 1px dotted #999;">
<h1 style="margin: 0; margin-bottom: 20px;float: left;">Комментарии<i class="glyphicon glyphicon-align-left" style="margin-left: 10px;
font-size: 25px;"></i></h1>
<span name="preload_status"></span>
<span name="course_length" style="display: none;">0</span>
</div>
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#lessons" aria-controls="lessons" role="tab" data-toggle="tab">Уроки <span style="margin-left: 5px;" class="label label-success" name="lessons_count"></span></a></li>
<li role="presentation"><a href="#articles" aria-controls="articles" role="tab" data-toggle="tab">Статьи <span style="margin-left: 5px;" class="label label-success" name="articles_count"></span></a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="lessons">
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist" name="courses_tabs">
</ul>
<!-- Tab panes -->
<div class="tab-content" name="courses_content">
</div>
</div>
<script>
window.courses = new Set();
</script>
{% for comment in lessons %}
<script>
if (!window.courses.has('{{ comment.course.get_title }}')){
window.courses.add('{{ comment.course.get_title }}');
$('[name="courses_tabs"]').append('<li role="presentation"><a href="#course_{{ comment.course.id }}" aria-controls="course_{{ comment.course.id }}" role="tab" data-toggle="tab">{{ comment.course.get_title }}</a></li>')
$('[name="courses_content"]').append('<div role="tabpanel" class="tab-pane" id="course_{{ comment.course.id }}"></div>')
}
</script>
{% if not comment.comment.saw %}
<div style="padding-left: 10px;" name="comment{{ comment.comment.id }}" response="{{ comment.comment.response }}" saw="{{ comment.comment.saw }}" class="{% if comment.comment.saw %}saw{% endif %}">
<div style="padding: 10px;"><b>Автор:</b> <a href="{{ DOMAIN }}admin/access/user/?q={{ comment.comment.owner_email }}" target="_blank">{{ comment.comment.owner_name }}</a>
<label class="label {{ comment.comment.owner_type.background }} m-l-xs">{{ comment.comment.owner_type.title }}</label>
<b>[ {{ comment.comment.owner_email }} ]</b><br><b>Курс:</b> <a href="/courses/{{ comment.course.id }}" target="_blank" style=" color: #337ab7;
border-bottom: 2px dotted;">{{ comment.course.get_title|truncatewords:2 }}</a>
<b>Тема:</b><a href="/courses/{{ comment.course.id }}#theme{{ comment.theme.id }}" target="_blank" style=" color: #337ab7;
border-bottom: 2px dotted;"> {{ comment.theme.get_title|truncatewords:2 }}</a>
<b>Урок №{{ comment.lesson.sort }}:</b><a href="/courses/lesson/{{ comment.lesson.id }}?to_comment={{ comment.comment.id }}" target="_blank" style=" color: #337ab7;
border-bottom: 2px dotted;"> {{ comment.lesson.get_title|truncatewords:2 }}</a>
<span style="float: right;">
{% if comment.comment.response %}
<span style="cursor: pointer; padding: 5px 10px;background: green;color: #fff;border-radius: 5px;" data-toggle="tooltip" data-placement="bottom" title="Есть ответ" onclick="$('#response_result_{{ comment.comment.id }}').fadeIn('fast');"><i class="glyphicon glyphicon-ok" style="padding-right: 5px;"></i> Есть ответ</span>
{% endif %}
<b>Дата:</b> {{ comment.comment.date }}
</span>
</div>
<p style="padding: 10px;
background: #ffc;
border-radius: 5px;display: none;" about="{{ comment.comment.id }}"></p>
<div style="
padding: 10px;
border-radius: 5px;margin-bottom: 30px;" class="{% if comment.comment.saw %}readed{% else %}no_read{% endif %}" readable_comment="{{ comment.comment.id }}">
<script>
{% if comment.comment.saw %}
window.comments_stack1.unshift({{ comment.comment.id }});
{% else %}
window.comments_stack2.unshift({{ comment.comment.id }});
{% endif %}
</script>
</div>
</div>
<script>
$('#course_{{ comment.course.id }}').append($('[name=comment{{ comment.comment.id }}]'))
</script>
{% endif %}
{% empty %}
<script>
window.theme{{ comment.theme.id }} = 0;
$('[name=lesson{{ comment.lesson.id }}]').hide();
</script>
{% endfor %}
<script>
if (window.comments_stack2){
$('[name=lessons_count]').html(window.comments_stack2.length)
} else {
$('[name=lessons_count]').html(0)
}
$('[name=course_length]').html(window.comments_stack2.length + window.comments_stack1.length)
</script>
</div>
<div role="tabpanel" class="tab-pane" id="articles">
{% for comment in articles %}
<div style="padding-left: 10px;" name="comment{{ comment.comment.id }}" response="{{ comment.comment.response }}" saw="{{ comment.comment.saw }}" class="{% if comment.comment.saw %}saw{% endif %}">
<div style="padding: 10px;"><b>Автор:</b> <a href="{{ DOMAIN }}admin/access/user/?q={{ comment.comment.owner_email }}" target="_blank">{{ comment.comment.owner_name }}</a>
<label class="label {{ comment.comment.owner_type.background }} m-l-xs">{{ comment.comment.owner_type.title }}</label>
<b>[ {{ comment.comment.owner_email }} ]</b>
<br><b>Статья:</b><a href="/library/article/{{ comment.article.id }}" target="_blank" style=" color: #337ab7;
border-bottom: 2px dotted;"> {{ comment.article.title }}</a>
<span style="float: right;">
{% if comment.comment.response %}
<span style="cursor: pointer; padding: 5px 10px;background: green;color: #fff;border-radius: 5px;" data-toggle="tooltip" data-placement="bottom" title="Есть ответ" onclick="$('#response_result_{{ comment.comment.id }}').fadeIn('fast');"><i class="glyphicon glyphicon-ok" style="padding-right: 5px;"></i> Есть ответ</span>
{% endif %}
<b>Дата:</b> {{ comment.comment.date }}
</span>
</div>
<p style="padding: 10px;
background: #ffc;
border-radius: 5px;display: none;" about="{{ comment.comment.id }}"></p>
<div style="
padding: 10px;
border-radius: 5px;margin-bottom: 30px;" class="{% if comment.comment.saw %}readed{% else %}no_read{% endif %}" readable_comment="{{ comment.comment.id }}">
<script>
{% if comment.comment.saw %}
window.comments_stack1.unshift({{ comment.comment.id }});
{% else %}
window.comments_stack2.unshift({{ comment.comment.id }});
{% endif %}
</script>
</div>
</div>
{% empty %}
<script>
window.theme{{ comment.theme.id }} = 0;
$('[name=lesson{{ comment.lesson.id }}]').hide();
</script>
{% endfor %}
<script>
if (window.comments_stack3){
$('[name=articles_count]').html(window.comments_stack3.length)
} else {
$('[name=articles_count]').html(0)
}
</script>
</div>
</div>
</div>
</div>
{% endblock %}
{% block js %}
<script src="/static/js/apis/comments.js"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
load_comments_texts()
})
</script>
{% endblock %}

@ -1,41 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Аналитика</title>
</head>
<body>
<h2>Дата создания отчёта {{ date_create }}</h2>
<button><a href="new?start={{ start }}&end={{ end }}">Сгенирировать отчёт</a></button>
<button style="margin-bottom: 20px"><a href="/media{{ url }}s{{ start }}e{{ end }}progress.csv">Скачать отчёт</a></button>
<button><a href="/analytics">На главную</a></button>
<form action="">
<label>от</label>
<input name="start" type="date" value="{{ start }}">
<label>до</label>
<input name="end" type="date" value="{{ end }}">
<button type="submit">Подготовить отчёт</button>
</form>
<table border="1px">
<tr>
{% for i in header %}
<th>{{ i }}</th>
{% endfor %}
</tr>
{% for i in body %}
<tr>
{% for j in i %}
<td style="background: {{j.background}}">{{ j.value }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
<p>
{% block description %}{% endblock %}
</p>
<h2>Внимание! Новый отчёт генерируется 1 раз! Следите за записью в хедоре страницы, если вы нуждаетесь в обновлении <br>
данных жмите кнопку "Сгенерировать отчёт" таким образом вы получите обновлённые данные для заданных пораметров фильтрации</h2>
</body>
</html>

@ -1,2 +0,0 @@
{% extends 'analytics/base.html' %}
{% block description %}{% endblock %}

@ -1,12 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Аналитика</title>
</head>
<body>
<h2>Меню поиска</h2>
<h4><a href="theme">Студентов успешно прошедших тему</a></h4>
<h4><a href="homework">Студентов ожидающих проверки домашки</a></h4>
</body>
</html>

@ -1,9 +0,0 @@
{% extends 'analytics/base.html' %}
{% block description %}
В данной таблице представлены данные о том, сколько студентов прошло заданную тему. <br>
Темы не всегда проходятся последовательно, поэтому порой тему с большим порядковым номером прошло большее количество пользовавтелей. <br>
Вы можите выставить фильтр по последней акутивности пользователя, фильтр может быть ограничивающим с одной стороны или может отсутствовать, <br>
в случае ввода невалидных данных ошибки не происходит вас просто перенапровляет на начальную страницу. <br>
Вы можите скачать отчёт в формате csv метка $-$yellow говорит о том что в данной теме есть экзамен,<br>
в таблице темы содержашие экзамен подсвечены жёлтым светом
{% endblock %}

@ -1,120 +0,0 @@
{% extends 'base_index.html' %}
{% load static %}
{% block head_title %}{{ article.social.title }}{% endblock %}
{% block title %}{{ article.title }}{% endblock %}
{% block head %}
{{ article.css|safe }}
<script src="/static/js/library.js"></script>
{% endblock %}
{% block head_description1 %}{{ article.social.description }}{% endblock %}
{% block head_description2 %}{{ article.social.description }}{% endblock %}
{% block head_image %}{{ article.social.image }}{% endblock %}
{% block app-content-body %}style="background:#fff;"{% endblock %}
{% block content %}
{{ article.page|safe }}
<script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script>
<script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script>
<div style=" text-align: center;
width: 80%;
margin: 0 auto;">
<div style="text-align: left;margin: 50px 0;float: left;">
<i class="glyphicon glyphicon-tags" style="float: left; padding: 5px;
margin-right: 10px;"></i>
{% for tag in article.tags.content %}
<span class="tag">#{{ tag.name }}</span>
{% endfor %}
</div>
<table width="100%" style="clear: both;" class="hidden-xs">
<tr>
<td valign="top" style=" float: left;
color: #000;
font-size: 15px;">
<div style="float: left;">Понравилась статья?<br>
Поделись с друзьями:</div><div class="ya-share2" style="padding: 10px;float: left; margin-left: 20px;" data-services="vkontakte,facebook,odnoklassniki,gplus,twitter,linkedin"></div></td>
<td valign="top"><button class="btn btn-warning" style="border-radius: 3px;padding: 10px;float: right;" onclick="set_like({{ article.id }})">Сказать спасибо <i class="glyphicon glyphicon-thumbs-up" style="margin-left: 10px; position: relative;
top: 3px;"></i> <span name="like_count">{{ article.get_likes_length }}</span></button><br>
<span style=" clear: both;{% if not article.like %}display: none;{% endif %}
text-align: right;
float: right;
font-size: 11px;
color: #999;
padding-top: 10px;" name="like_thanks">* Спасибо,<br> что оценили нашу работу</span></td>
</tr>
</table>
<div class="visible-xs" style="clear: both;">
<p valign="top" style="
color: #000;
font-size: 15px;">Понравилась статья?<br>
Поделись с друзьями:</p>
<p valign="top"><div class="ya-share2" style="padding: 10px; margin: 20px 0;" data-services="vkontakte,facebook,odnoklassniki,gplus,twitter,linkedin"></div></p>
<p valign="top"><button class="btn btn-warning" style="border-radius: 3px;padding: 10px;" onclick="set_like({{ article.id }})">Сказать спасибо <i class="glyphicon glyphicon-thumbs-up" style="margin-left: 10px; position: relative;
top: 3px;"></i> <span name="like_count">{{ article.get_likes_length }}</span></button><br>
<p style=" clear: both;{% if not article.like %}display: none;{% endif %}
text-align: center;
font-size: 11px;
color: #999;
padding-top: 10px;" name="like_thanks">* Спасибо,<br> что оценили нашу работу</p></p>
</div>
</div>
<div class="row" style=" box-sizing: border-box;padding: 40px;clear: both;margin-top: 40px;">
{% include 'comments_block.html' %}
</div>
<div id="nav_block">
<div id="nav_in">
<span id="button" data-toggle="tooltip" data-placement="bottom" title="Назад" onclick="location.href = '{{ DOMAIN }}library/articles/';"><i class="glyphicon glyphicon-arrow-left"></i> назад</span>
<hr noshade>
<span id="button" class="{% if article.like %}active{% endif %}" data-toggle="tooltip" data-placement="bottom" title="Нравится" onclick="{% if not article.like %}ajax_set_like{% else %}ajax_unset_like{% endif %}(this)" article_id="{{ article.id }}"><i class="glyphicon glyphicon-thumbs-up"></i> </span>
<span id="button" class="{% if article.favorite %}active{% endif %}" data-toggle="tooltip" data-placement="bottom" title="В избранное" onclick="{% if not article.favorite %}ajax_set_favorit{% else %}ajax_unset_favorit{% endif %}(this)" article_id="{{ article.id }}"><i class="glyphicon glyphicon-star "></i></span>
<hr noshade>
<span id="button" data-toggle="tooltip" data-placement="bottom" title="Случайная статья" onclick="location.href = '/library/article/' + get_random_article('{{ article.id }}');"><i class="glyphicon glyphicon-retweet"></i></span>
</div>
</div>
<input name="ARTICLE_ID" value="{{ article.id }}" readonly style="display: none;">
{% endblock %}
{% block js %}
{% if not request.user.is_authenticated %}
<script>
setTimeout(function() { $('#ArticleRegister').modal('show'); }, 30000);
</script>
{% endif %}
<script>
$(function() {
$(window).scroll(function () {
if ($(this).scrollTop() != 0) {
$('#nav_block').fadeIn();
} else {
$('#nav_block').fadeOut();
}
});
load_lesson_comments();
if ($('#myModal1').length == 0) {
window.EDITOR = new Simditor({
textarea: $('[name=comment_sent_text]')})
}
$("a#single_image").fancybox();
setInterval(function () {
get_lesson_comments_length();
refresh_like($('[name=ARTICLE_ID]').val())
}
, 2000);
$('[data-toggle="tooltip"]').tooltip();
})
</script>
{{ article.js|safe }}
{% endblock %}

@ -1,41 +0,0 @@
<html>
<head>
<title>{% block title %}{{ article.title }}{% endblock %}</title>
<meta name="description" content="{% block head_description1 %}Школа программирования - Точка Кода{% endblock %}" />
<meta property="og:title" content="{% block head_title %}Точка Кода{% endblock %}" />
<meta property="og:description" content="{% block head_description2 %}Школа программирования{% endblock %}" />
<meta property="og:image" content="{% block head_image %}{{ DOMAIN }}static/img/3818cc0ec1.png{% endblock %}" />
<link rel="stylesheet" href="/static/css/tilda-grid.css" rel="stylesheet" media="screen">
<link rel="stylesheet" href="/static/css/tilda_blocks.css" rel="stylesheet" media="screen">
</head>
<body style="margin: 0;">
<div class="head" style=" position: absolute;
z-index: 12;
width: 96%;
text-align: center;
padding: 2%;">
<a href="/"><img src="/static/img/logo articles.png" style=" padding-right: 50px;"></a>
<span style="padding: 20px;
color: #fff;
font-size: 20px;position: relative;
top: -20px; font-family: 'Roboto';">
<a href="/" style="color: #fff; text-decoration: none;"><span style=" padding-right: 30px;">Курсы</span></a>
<a href="/library/articles/" style="color: #fff; text-decoration: none;"><span style=" padding-right: 30px;">Статьи</span></a>
<a href="/access/profile" style="color: #fff; text-decoration: none;"><span style=" padding-right: 30px;">Профиль</span></a>
<a href="/contacts/" style="color: #fff; text-decoration: none;"><span style=" padding-right: 30px;">Контакты</span></a>
<a href="/management/faq/" style="color: #fff; text-decoration: none;"><span style=" padding-right: 30px;">Помощь</span></a>
</span>
<hr style=" margin-top: 30px;
border-color: #999;
opacity: 0.5; max-width: 960px;">
</div>
{% block content %}
{{ article.page|safe }}
{% endblock %}
<script src="/static/js/jquery.min.js"></script>
<script src="/static/js/tilda-scripts.js"></script>
<script src="/static/js/tilda-blocks.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
</body>
</html>

@ -1,34 +0,0 @@
{% extends 'base_index.html' %}
{% load static %}
{% load course_filter %}
{% block title %}Доступ на страницу закрыт{% endblock %}
{% block page_title %}Доступ на страницу закрыт{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">
Доступ на страницу закрыт
</h1>
</div>
</div>
</div>
<div class="wrapper-md">
{% if request.user.is_authenticated %}
<p style="text-align: center;"><img src="/static/img/journal_access.png"></p>
<p style=" text-align: center;
font-size: 20px;
margin-top: 30px;">Вам не открыт доступ к этому материалу, поскольку вы еще не дошли до этого материала</p>
{% else %}
<p style="text-align: center;"><img src="/static/img/get_access.png"></p>
<p style=" text-align: center;
font-size: 20px;
margin-top: 30px;">Авторизуйтесь для получения доступа на эту страницу</p>
{% endif %}
</div>
</div>
{% endblock %}

@ -1,652 +0,0 @@
<div class="modal fade" id="image-workshop" tabindex="-1" role="dialog" aria-labelledby="image-workshop" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="close_workshop()"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="validateTips" style=" text-align: center;
padding: 10px;
background-color: #f1f1f1;
margin-top: 10px;
margin-bottom: 0;">
Обрежте изображение, если это необходимо.
</div>
<div style=" width: 100%;
background-color: #ffc;
padding: 10px;
margin-top: 0px;
text-align: center;">
<button type="button" class="btn btn-warning btn-lg" onclick="save_workshop()">Сохранить</button>
<button type="button" class="btn btn-warning btn-lg" onclick="close_workshop()">Назад</button>
</div>
<div class="image_change_workshop">
<div class="image_change_workshop_place" id="id" style="text-align: center;">
<img name="image_change_workshop" src="/static/img/ui-anim_basic_16x16.gif">
</div>
</div>
<div style=" width: 100%;
background-color: #ffc;
padding: 10px;
margin-top: 10px;
text-align: center;">
<button type="button" class="btn btn-warning btn-lg" onclick="save_workshop()">Сохранить</button>
<button type="button" class="btn btn-warning btn-lg" onclick="close_workshop()">Назад</button>
</div>
<p style="text-align: center; padding-top: 10px; display: none;" name='file_load_error'>
Ошибка загрузки файла
</p>
</div>
</div>
</div>
</div>
<div class="modal fade" id="img-load" tabindex="-1" role="dialog" aria-labelledby="img-load" aria-hidden="true" style="z-index: 2000;">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="$('#form_image_load_file_input').replaceWith($('#form_image_load_file_input').clone())"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<p style="text-align: center;">
Вы можете загрузить изображение в формате JPG, GIF или PNG.
<br> <b style="text-align: center;color: red;">Минимальный размер изображения 256x256</b></p>
<div class="progress_img_load" style="display: none;">
<p style="text-align: center;"><img src="/static/img/ui-anim_basic_16x16.gif" style="margin: 20px auto;"></p>
</div>
<div class="form_img_load">
<form enctype='multipart/form-data'
action='/storage/upload_file/'
method='post'
name='load_img'
id="form_image_load_form"
target='hidden_frame'
class="load_file" style=" margin-bottom: 20px;">
<input type='hidden' name='MAX_FILE_SIZE' value='64000'>
<input id="form_image_load_file_input" name='file' type='file' accept="image/x-png, image/gif, image/jpeg" data-icon="false" data-classbutton="btn btn-default" data-classinput="form-control inline v-middle input-s" tabindex="-1"
style="outline: 0;background: #ffc; padding: 5px 10px;border-radius: 5px;margin: auto;position: absolute; clip: rect(0px, 0px, 0px, 0px);">
<div class="bootstrap-filestyle input-group">
<span tabindex="0" class="group-span-filestyle input-group-btn" style="text-align: center;">
<label for="form_image_load_file_input" class="btn btn-default ">
<span class="glyphicon glyphicon-save-file"></span> Загрузить изображение
</label>
</span>
</div>
<input type="text" name="clip_file_id" readonly value="0" style="display: none;">
</form>
<input name="load_img" id="form_image_load_hidden_input" value="0" readonly style="display: none">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Смена пароля-->
<div class="modal fade" id="changePassword" tabindex="-1" role="dialog" aria-labelledby="changePassword" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('change_password_form', 'error_change_password')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1439239821_key.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Смена пароля</p>
<form action="" name="change_password_form" onsubmit="return false;">
<p class="error" id="error_change_password" style="display: none"></p>
<input type="password" placeholder="Введите текущий пароль" name="old_password"><br>
<input type="password" placeholder="Введите новый пароль" name="password1"><br>
<input type="password" placeholder="Повторите новый пароль" name="password2"><br>
<button class="btn btn-warning btn-lg" onclick="change_password_func()">Сменить</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Подтверждение действия-->
<div class="modal fade" id="acceptModal" tabindex="-1" role="dialog" aria-labelledby="acceptModal" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" name="cancel_action_button"
onclick="$('#acceptModal').modal('hide')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1441241426_sign-warning.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Подтверждение действия</p>
<form action="" name="change_password" onsubmit="return false;">
<p style="font-size: 15px;">Вы уверены, что хотите <span name="accept_action_message"></span></p>
<button type="button" class="btn btn-warning btn-lg" onclick="" name="accept_action_button">Подтвердить</button>
<button type="button" class="btn btn-warning btn-lg" onclick="$('#acceptModal').modal('hide')">Отмена</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Поток не доступен-->
<div class="modal fade" id="flowAccess" tabindex="-1" role="dialog" aria-labelledby="flowAccess" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #ffe474;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/journal_access.png" alt="" style="max-width: 256px;">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ" style=" padding-bottom: 40px;">
<p class="modal-title" id="myModalLabel">Материал не доступен</p>
<p style="margin-top: 30px; font-size: 19px;">Материалы курса будут доступны в день старта вашего потока к 20:00 (по Московскому времени).
Если у вас возникли вопросы по курсу, напишите нашей службе заботы о клиентах на hello@skillbox.ru</p>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Журнал не доступен-->
<div class="modal fade" id="journalAccess" tabindex="-1" role="dialog" aria-labelledby="journalAccess" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #ffe474;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/journal_access.png" alt="" style="max-width: 256px;">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ" style=" padding-bottom: 40px;">
<p class="modal-title" id="myModalLabel">Материал не доступен</p>
<p style=" margin-top: 30px;
font-size: 19px;">Материал вам еще не доступен. Выполните все задания до и доступ откроется вам автоматически</p>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Журнал не доступен-->
<div class="modal fade" id="journalProgressAccess" tabindex="-1" role="dialog" aria-labelledby="journalProgressAccess">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #339933;color:#fff;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/new_material.png" alt="" style="max-width: 256px;">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel" style="color: #fff;">Добавлен новый материал</p>
<p style=" font-size: 15px;
padding-top: 0;
color: #fff;
text-align: justify;">Материал вам еще недоступен. Для получения доступа, необходимо просмотреть уроки/выполнить задания указанные ниже:</p>
<ul class="inside_list">
{% for i in waiting_materials %}
{% if forloop.first %}
<a href="/courses/{{ i.type }}/{{ i.obj.id }}"><li class="active" style="">{{ i.obj }}<span style="float: right;font-size: 13px;color:#fff;">Перейти</span></li></a>
{% else %}
<li>{{ i.lesson }}</li>
{% endif %}
{% endfor %}
</ul>
<p style=" font-size: 13px;
color: #f1f1f1;
padding: 0;
text-align: right;">*Новый материал необходимо пройти по порядку предоставления</p>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
{% if waiting_materials %}
{% if waiting_materials.0.type not in request.path or waiting_materials.0.obj.id not in request.path %}
<script>
$('#journalProgressAccess').modal('show');
</script>
{% endif %}
{% endif %}
<!-- Modal Журнал не доступен-->
<div class="modal fade" id="BlockMaterial" tabindex="-1" role="dialog" aria-labelledby="BlockMaterial">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #333;color:#fff;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/denied.png" alt="" style="max-width: 256px;">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel" style="color: #fff;">Доcтуп заблокирован</p>
<p style="color: #ccc;">Данный материал находится в обработке. Если в течении 48 часов у вас не появился доступ к материалам, обратитесь на почту info@bedev.ru</p>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Настройки-->
<div class="modal fade" id="settingsModal" tabindex="-1" role="dialog" aria-labelledby="settingsModal" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('user_settings', 'error_user_settings')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<div class="panel-heading no-border wrapper-md" style="text-align: right;margin-top: 30px;">
<button class="btn btn-sm btn-icon btn-rounded btn-info m-l" style="margin-left: 0;position: relative;"
onclick="load_image('user_settings_avatar', 'big')" ><i class="fa fa-camera"></i></button>
<button class="btn btn-sm btn-icon btn-rounded btn-danger m-l" style="display: none;position: relative;margin-left:0;"
onclick="remove_image(this, 'user_settings_avatar', '/static/img/a8.jpg');$('[name=avatar_code]').val('')"
name="user_settings_avatar_remove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<div class="text-center clearfix " style="border-radius: 0 0 5px 5px;padding-bottom: 10px;margin-top: -40px;">
<img src="" alt="..." class="img-circle" name="user_settings_avatar" style="max-width: 180px;">
</div>
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Настройки пользователя</p>
<form action="" name="user_settings" onsubmit="return false;">
<p class="error" id="error_user_settings" style="display: none"></p>
<input readonly style="display: none;" name="avatar_code">
<p style="padding-bottom: 0;text-align: left;font-size: 15px;margin-bottom: 5px;padding-left: 5px;padding-top: 0;">Фамилия</p>
<input class="padd_bottom" type="text" placeholder="Фамилия" name="user_settings_fname"><br>
<p style="padding-bottom: 0;text-align: left;font-size: 15px;margin-bottom: 5px;padding-left: 5px;padding-top: 0;">Имя</p>
<input class="padd_bottom" type="text" placeholder="Имя" name="user_settings_name"><br>
<p style="padding-bottom: 0;text-align: left;font-size: 15px;margin-bottom: 5px;padding-left: 5px;padding-top: 0;">Отчество</p>
<input class="padd_bottom" type="text" placeholder="Отчество" name="user_settings_oname"><br>
<p style="padding-bottom: 0;text-align: left;font-size: 15px;margin-bottom: 5px;padding-left: 5px;padding-top: 0;">Телефон</p>
<input class="padd_bottom" type="text" placeholder="Телефон" name="user_settings_phone"><br>
<p style="padding-bottom: 0;text-align: left;font-size: 15px;margin-bottom: 5px;padding-left: 5px;padding-top: 0;">Email</p>
<input class="padd_bottom" type="email" placeholder="E-mail" name="user_settings_email"><br>
<p style="padding-bottom: 0;text-align: left;font-size: 15px;margin-bottom: 5px;padding-left: 5px;padding-top: 0;">Город</p>
<input class="padd_bottom" type="text" placeholder="Город" name="user_settings_city"><br>
<p style="padding-bottom: 0;text-align: left;font-size: 15px;margin-bottom: 5px;padding-left: 5px;padding-top: 0;">Дата рождения</p>
<div class="input-group date">
<input type="text" class="form-control" placeholder="Дата рождения" name="user_settings_bday" ><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div><br>
<button class="btn btn-warning btn-lg" onclick="change_settings()">Сохранить</button>
</form>
<a href="#" data-toggle="modal" data-target="#changePassword" data-dismiss="modal" aria-label="Close" class="wht js-open-modal">Сменить пароль</a>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal подписки-->
<div class="modal fade" id="subscriptionModal" tabindex="-1" role="dialog" aria-labelledby="subscriptionModal" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('subscription_form', 'error_subscription')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1439433911_new_seo2-28.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Ваши подписки</p>
<form name="subscription_form" onsubmit="return false;">
<p class="error" id="error_subscription" style="display: none"></p>
<div class="input_field">
<p style="text-align: left; border-bottom: 1px dotted #ccc;">
<b>Новости:</b>
<input type="checkbox" name="subscription_news" style="float: right; height: 20px; width: 20px;">
</p>
<p style="text-align: left; border-bottom: 1px dotted #ccc;">
<b>Новые курсы:</b>
<input type="checkbox" name="subscription_courses" style="float: right; height: 20px; width: 20px;">
</p>
<p style="text-align: left; border-bottom: 1px dotted #ccc;">
<b>Комментарии преподавателей:</b>
<input type="checkbox" name="subscription_teacher" style="float: right; height: 20px; width: 20px;">
</p>
<p style="text-align: left; border-bottom: 1px dotted #ccc;">
<b>Ответы на ваши комментарии:</b>
<input type="checkbox" name="subscription_new_comments" style="float: right; height: 20px; width: 20px;">
</p>
<p style="text-align: left; border-bottom: 1px dotted #ccc;">
<b>Отправлять СМС:</b>
<input type="checkbox" name="subscription_send_sms" style="float: right; height: 20px; width: 20px;">
</p>
</div>
<button class="btn btn-warning btn-lg" onclick="change_subscription()">Сохранить</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="needByNoneClose" tabindex="-1" role="dialog" aria-labelledby="needByNoneClose" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
</div>
<div>
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1442791218_certificate.png" alt="" name="needByNoneCloseImage" style="width: 100%; height: auto;">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Получения полного доступа к курсу</p>
<p class="error" style="background: #ffc;border-radius: 5px;">Проверка домашних заданий, общение с преподавателем онлайн и полный доступ ко всем урокам курса<br>
<b> &#0151 доступны в полной версии курса.</b></p>
<p style="text-align: center;color:#ccc;">в полной версии курса &#0171<span name="needByNoneCloseCourseName"></span>&#0187</p>
<div class="col-lg-12" style=" padding-bottom: 20px;">
<div class="col-lg-3 col-md-6 col-sm-6 col-xs-6" style="border-right: 1px solid #ccc;text-align: center;padding: 0;
">
<h2 style="font-weight: bold;" name="needByNoneCloseBasicLessonsLength">16</h2>
<small>основных модулей</small>
</div>
<div class="col-lg-4 col-md-6 col-sm-6 col-xs-6" style="border-right: 1px solid #ccc;text-align: center;padding: 0;
">
<h2 style="font-weight: bold;" name="needByNoneCloseAdditionLessonsLength">16</h2>
<small>
дополнительных модулей
</small>
</div>
<ul class="col-lg-5 check_list">
<li style=" padding-top: 10px; clear: both;"><i class="glyphicon glyphicon-ok-sign" style="color: green;"></i> проверка домашних заданий</li>
<li><i class="glyphicon glyphicon-ok-sign" style="color: green;"></i> стажировка</li>
<li><i class="glyphicon glyphicon-ok-sign" style="color: green;"></i> трудоустройство</li>
<li><i class="glyphicon glyphicon-ok-sign" style="color: green;"></i> общение с преподавателем</li>
<li><i class="glyphicon glyphicon-ok-sign" style="color: green;"></i> работа над реальными проектами</li>
</ul>
</div>
<div class="col-lg-12">
<div class="col-lg-5" style="text-align: center;
font-size: 17px;
padding-left: 0;">
<b>стоимость курса:</b><br>
<p style=" color: #999;
font-size: 16px;">от <span name="needByNoneCloseMinPrice">6 777</span> руб. в месяц</p>
</div>
<div class="col-lg-7" style=" padding: 0;">
<button type="button" class="btn btn-success btn-lg" name="by_course_from_modal_button" onclick="" style="margin: 0;">Оставить заявку на курс</button><br>
<p style=" text-align: center;padding-bottom: 0;
font-size: 12px;
color: #999;">
Заявка на курс вас ни к чему не обязывает.
После регистрации с вами свяжется менеджер,
чтобы рассказать детали курса.
</p>
</div>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
{% if request.user.is_admin and request.user.is_staff %}
<div class="modal fade" id="super_myModal1" tabindex="-1" role="dialog" aria-labelledby="super_myModal1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: green;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('auth_form')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1455736671_eye.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel" style="color: #fff;">Супер авторизация</p>
<form action="" name="super_auth_form" onsubmit="return false;">
<p class="error" id="error_super_auth" style="background: #ffc;border-radius: 5px;display: none;"></p>
<input class="padd_bottom" type="text" placeholder="E-mail авторизуемого" name="email"><br>
<input type="password" placeholder="Введите свой админский пароль" name="password" style="margin-bottom: 5px;"><br>
<input type="password" style="display: none;" readonly placeholder="Введите свой админский токен" value="{{ request.user.token }}" name="token"><br>
<button class="btn btn-warning btn-lg" onclick="super_auth_go(false);">Войти</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="delete_comment_modal" tabindex="-1" role="dialog" aria-labelledby="delete_comment_modal" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: green;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('delete_comment')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1455736671_eye.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel" style="color: #fff;">Супер авторизация</p>
<form action="" name="delete_comment" onsubmit="return false;">
<p class="error" id="error_delete_comment" style="background: #ffc;border-radius: 5px;display: none;"></p>
<textarea>
</textarea>
<button class="btn btn-warning btn-lg" onclick="super_auth_go(false);">Войти</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
{% endif %}
<!---->
{% if request.user.is_authenticated and request.user.email == '!!wies@1312s.ru' %}
<div class="modal fade" id="newYear" tabindex="-1" role="dialog" aria-labelledby="newYear" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #00bdff;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img style="max-width: 180px;" src="/static/img/magazine.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ" style="color: #fff;">
<span style="font-size: 120px;">Пошел нахуй!</span>
<button class="btn btn-warning btn-lg" style="margin-bottom: 0;">Поити</button>
</div>
</div>
</div>
</div>
</div>
</div>
{% endif %}
<!-- Modal Смена пароля-->
<div class="modal fade" id="FreeWeekDone" tabindex="-1" role="dialog" aria-labelledby="FreeWeekDone" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #009e72;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('change_password_form', 'error_change_password')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<img src="/static/img/green-Kolya.png" alt="" style="float: left;">
<div class="activ" style="float: left;">
<p class="modal-title" id="myModalLabel">Смена пароля</p>
<form action="" name="change_password_form" onsubmit="return false;">
<p class="error" id="error_change_password" style="display: none"></p>
<input type="password" placeholder="Введите текущий пароль" name="old_password"><br>
<input type="password" placeholder="Введите новый пароль" name="password1"><br>
<input type="password" placeholder="Повторите новый пароль" name="password2"><br>
<button class="btn btn-warning btn-lg" onclick="change_password_func()">Приобрести полный курс</button>
</form>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Смена пароля-->
<div class="modal fade" id="FreeWeekFail" tabindex="-1" role="dialog" aria-labelledby="FreeWeekFail" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #345374;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('change_password_form', 'error_change_password')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<img src="/static/img/blue-Kolya.png" alt="" style="float: left;">
<div class="activ" style="float: left;">
<p class="modal-title" id="myModalLabel">Смена пароля</p>
<form action="" name="change_password_form" onsubmit="return false;">
<p class="error" id="error_change_password" style="display: none"></p>
<input type="password" placeholder="Введите текущий пароль" name="old_password"><br>
<input type="password" placeholder="Введите новый пароль" name="password1"><br>
<input type="password" placeholder="Повторите новый пароль" name="password2"><br>
<button class="btn btn-warning btn-lg" onclick="change_password_func()">Приобрести полный курс</button>
</form>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Смена пароля-->
<div class="modal fade" id="WeekReport" tabindex="-1" role="dialog" aria-labelledby="WeekReport" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('change_password_form', 'error_change_password')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<p class="modal-title" id="myModalLabel">Смена пароля</p>
<form action="" name="change_password_form" onsubmit="return false;">
<p class="error" id="error_change_password" style="display: none"></p>
<input type="password" placeholder="Введите текущий пароль" name="old_password"><br>
<input type="password" placeholder="Введите новый пароль" name="password1"><br>
<input type="password" placeholder="Повторите новый пароль" name="password2"><br>
<button class="btn btn-warning btn-lg" onclick="change_password_func()">Приобрести полный курс</button>
</form>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Окно пользователя в НГ
<div class="modal fade" id="newYear" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #00bdff;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="$.ajax({type: 'GET',url: '/management/hide_modal/?name=new_year'});$('#newYear').modal('hide')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img style="max-width: 180px;" src="/static/img/magazine.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ" style="color: #fff;">
<span style="font-size: 30px;">Привет,</span><br><br>
Приближаются майские праздники и у преподавателей тоже будут каникулы.<br>
Расписание проверки работ:<br>
с 1 по 3 - каникулы<br>
с 4 по 6 в штатном режиме<br>
с 7 по 9 - каникулы<br><br>
При большом количестве работ выполненных за выходные дни возможна небольшая задержка в проверке работ 4 мая.<br>
Надеемся на ваше понимание.<br><br>
Хороших выходных!
<button class="btn btn-warning btn-lg" style="margin-bottom: 0;" onclick="$.ajax({type: 'GET',url: '/management/hide_modal/?name=new_year'});$('#newYear').modal('hide')">Приятного обучения</button>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
-->

File diff suppressed because it is too large Load Diff

@ -1,159 +0,0 @@
{% load static %}
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>{% block title %}{% endblock %} {{ NAME }}</title>
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="/static/img/favicon.ico" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<link rel="stylesheet" href="/static/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/animate.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/font-awesome.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/simple-line-icons.css" type="text/css" />
<link rel="stylesheet" href="/static/css/font.css" type="text/css" />
<link rel="stylesheet" href="/static/css/app.css" type="text/css" />
<link rel="stylesheet" href="/static/css/aside.css" type="text/css" />
<link rel="stylesheet" href="/static/css/kladr.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/bootstrap-datepicker.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/bootstrap-datepicker.standalone.min.css" type="text/css" />
<link href="/static/css/jqiuery_dialogs.css" rel="stylesheet" />
<link href="/static/css/jquery.Jcrop.css" rel="stylesheet" />
<style>
input{
font-weight: bold;
color: #666 !important;
font-size: 18px !important;
}
</style>
{% block head %}
{% endblock %}
</head>
<body>
<div class="app app-header-fixed ">
<!-- header -->
<header id="header" class="app-header navbar " role="menu" style=" background-color: #fdfdfd;">
<!-- navbar header -->
<div class="navbar-header bg-info dker" style="text-align: center;">
{% if request.user.is_authenticated %}
<button class="pull-right visible-xs " target=".navbar-collapse" style="padding: 12px 17px;">
<a href="/access/logout/"><i class="glyphicon glyphicon-log-out"></i></a>
</button>
<button class="pull-right visible-xs " target=".navbar-collapse" style="padding: 10px;">
<a href="/access/profile/" class="pull-right visible-xs ">
<span class="w-auto-folded avatar thumb-xs">
<img src="/static/img/user_photo.jpg" class="img-circle" alt="...">
</span>
</a>
</button>
<!-- / navbar right -->
{% else %}
<button class="pull-right visible-xs " target=".navbar-collapse">
<a type="button" data-toggle="modal" data-target="#myModal1" ui-sref="access.signin"><i class="glyphicon glyphicon-log-out"></i></a>
</button>
<button class="pull-right visible-xs " target=".navbar-collapse">
<a type="button" data-toggle="modal" data-target="#myModal" ui-sref="access.signin"><i class="glyphicon glyphicon-plus"></i></a>
</button>
{% endif %}
<!-- brand -->
<a href="/" class="navbar-brand text-lt" style="padding-right: 0;">
<img src="/static/img/logo.png" alt="." class="" style=" max-width: 200px;
margin-left: 20px;">
</a>
<!-- / brand -->
</div>
<!-- / navbar header -->
</header>
<!-- / header -->
<style>
.app-content-body:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
.hbox {
display: inline-block;
vertical-align: middle;
}
/* добавим горизонтальное центрирование */
.app-content-body {
text-align: center;
}
input#error{
background: red;
}
</style>
<!-- content -->
<div id="content" class="app-content" role="main" style="margin: 20px auto 0 auto;width: 100%;">
<div class="app-content-body " style="padding: 0;">
<div class="hbox hbox-auto-xs hbox-auto-sm" style="text-align: center;">
<div style="width: 570px;
margin: 0 auto;
list-style: none;
background-color: #fff;
padding: 20px;
height: 100%;
border-radius: 0 0 5px 5px; border-bottom: 5px solid #666;border-left: 1px solid #ccc;
border-right: 1px solid #ccc;">
<div style="display: none;">
<form action="{{ data.url }}" method="POST">
{% for key, value in data.data.items %}
<input name="{{ key }}" value="{{ value }}">
{% endfor %}
<input type="submit" value="Оплатить" name="bill_submit">
</form>
</div>
<h2>{% if price != '0' %}Переход на страницу оплаты{% else %}Курс выдан вам в подарок{% endif %}</h2>
<p style=" margin: 50px 0;font-weight: bold;
background: #ffc;
padding: 5px;">{% if price != '0' %}Редирект будет осуществлен через <span name="redirect_count"></span>{% else %}<i class="glyphicon glyphicon-gift" style="font-size: 30px;"></i> {% endif %}</p>
<p>
{% if price != '0' %}
Если ваш браузер не поддерживает переадрессацию - перейдите по ссылке ниже:
<a href="#" style="color: blue;border-bottom: 1px dotted;" name="link_content" onclick="$('[name=bill_submit]').click()">
Перейти к оплате
</a>
{% else %}
<a href="/" style="color: blue;border-bottom: 1px dotted;">Приятного обучения</a>
{% endif %}
</p>
</div>
<p style="text-align: left;margin: 20px auto;width: 530px;">
<i class="glyphicon glyphicon-copyright-mark"></i> {% now "Y" %}
<span style="float: right;">{{ NAME }}</span>
</p>
</div>
</div>
</div>
</div>
<!-- / content -->
<script type="text/javascript" src='/static/js/jquery.min.js'></script>
<script type="text/javascript" src='/static/js/bootstrap.min.js'></script>
<script type="text/javascript" src='/static/js/tools.js'></script>
<input name="REQUEST_USER_ID" style="display: none;" readonly value="{{ request.user.id }}">
{% block js %}
{% if price != '0' %}
<script>
$(function () {
start_count($('[name=redirect_count]'), 3, function () {
$('[name=bill_submit]').click()
})
})
</script>
{% endif %}
{% endblock %}
</body>
</html>

@ -1,34 +0,0 @@
{% extends 'base_index.html' %}
{% load static %}
{% load course_filter %}
{% block title %}Доступ на страницу закрыт{% endblock %}
{% block page_title %}Доступ на страницу закрыт{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">
Доступ на страницу закрыт
</h1>
</div>
</div>
</div>
<div class="wrapper-md">
{% if request.user.is_authenticated %}
<p style="text-align: center;"><img src="/static/img/journal_access.png"></p>
<p style=" text-align: center;
font-size: 20px;
margin-top: 30px;">Купите курс для получения доступа на эту страницу</p>
{% else %}
<p style="text-align: center;"><img src="/static/img/get_access.png"></p>
<p style=" text-align: center;
font-size: 20px;
margin-top: 30px;">Авторизуйтесь для получения доступа на эту страницу</p>
{% endif %}
</div>
</div>
{% endblock %}

@ -1,236 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Рабочий кабинет{% endblock %}
{% block content %}
<style type="text/css">
.functions{
width: 700px;
float: left;
}
.themes, .homes, .password-change, .open-diplom{
width: 600px;
height: auto;
margin-left: 100px;
border: 1px solid #000;
margin-bottom: 5px;
}
.name{
width: 600px;
height: 60px;
line-height: 60px;
color: #0c0c0c;
font-size: 24px;
font-style: bold;
text-align: center;
}
.input-block{
width: 100%;
height: 60px;
}
form{
width: 450px;
margin: auto;
}
input{
float: right;
}
textarea{
float: right;
width: 200px;
height: 300px;
}
.submit{
float: none;
margin-left: 190px;
margin-bottom: 20px;
margin-top: 10px;
}
.responce{
font-size: 16px;
font-style: bold;
}
.courses{
float: right;
}
</style>
<div class="functions">
<div class="themes">
<div class="name">Открыть уроки</div>
<form id='lessons'>
<div class="input-block">
<span>Введите id пользователя</span>
<input type="text" class="id-user" name='user' required>
<div id='output-user'></div>
</div>
<div class="input-block">
<span>Введите id курса</span>
<input type="text" class="id-course" name="course" required>
<div class="output-course"></div>
</div>
<div class="input-block">
<span>Открыть домашки</span>
<input type="checkbox" id="open-homes" name="homes">
</div>
<div class="input-block">
<span>Отдельные темы</span>
<input type="text" id="themes" name="themes">
</div>
<div class="lresp responce"></div>
<input type="submit" class='submit'>
</form>
</div>
<div class="homes">
<div class="name">Открыть домашки</div>
<form id='homes'>
<div class="input-block">
<span>Введите id пользователя</span>
<input type="text" class="id-user" name="user" required>
<div id='output-user'></div>
</div>
<div class="input-block">
<span>Введите id курса</span>
<input type="text" class="id-course" name="course" required>
<div class="output-course"></div>
</div>
<div class="input-block">
<span>Отдельные темы</span>
<input type="text" id="themes" name="themes">
</div>
<div class="hresp responce"></div>
<input type="submit" class='submit'>
</form>
</div>
<div class="password-change">
<div class="name">Поменять пароль</div>
<form id='pass'>
<div class="input-block">
<span>Введите id пользователя</span>
<input type="text" name="user" class="id-user">
<div id='output-user'></div>
</div>
<div class="input-block">
<span>Введите новый пароль</span>
<input type="text" name="pass">
</div>
<div class="presp responce"></div>
<input type="submit" name="" class='submit'>
</form>
</div>
</div>
<div class="courses">
{% for c in courses %}
<div class="course">{{ c.id }}: {{ c.title }}</div>
{% endfor %}
</div>
<script type="text/javascript">
$('.id-user').on('focusout', function(){
outblock = $(this).next()
value = $(this).val()
console.log(value)
$.ajax({
url: 'find_user/',
type: 'GET',
data: {'user': value },
success: function(data){
console.log(data)
if (data == 0){
$(outblock).html('Пользователь не найден') // передлать элемент
}
else {
$(outblock).html(data)
}
}
})
})
$('.id-course').on('focusout', function(){
value = $(this).val()
outblock = $(this).next()
console.log(outblock)
$.ajax({
url: 'find_course/',
type: 'GET',
data: {'course': value},
success: function(data){
if (data == 0){
$(outblock).html('Курс не найден')
}
else {
$(outblock).html(data)
}
}
})
})
$('#lessons').on('submit', function(event){
event.preventDefault()
data = $(this).serialize()
console.log(data)
$.ajax({
url: 'open_lessons/',
type: 'GET',
data: data,
success: function(data){
console.log(data)
if (data == '0'){
$('.lresp').html('Не получается обработать данные')
}
if (data == '1'){
$('.lresp').html('Ошибка в работе')
}
if (data == '2'){
$('.lresp').html('Уроки открыты')
}
}
})
})
$('#homes').on('submit', function(event){
event.preventDefault()
data = $(this).serialize()
console.log(data)
$.ajax({
url: 'open_homes/',
type: 'GET',
data: data,
success: function(data){
console.log(data)
if (data == 0){
$('.hresp').html('Не получается обработать данные')
}
if (data == 1){
$('.hresp').html('Ошибка в работе')
}
if (data == 2){
$('.hresp').html('Домашки открыты')
}
}
})
})
$('#pass').on('submit', function(event){
event.preventDefault()
data = $(this).serialize()
console.log(data)
$.ajax({
url: 'change_pass/',
type: 'GET',
data: data,
success: function(data){
console.log(data)
if (data == 0){
$('.presp').html('Не получается обработать данные')
}
if (data == 1){
$('.presp').html('Ошибка в работе')
}
if (data == 2){
$('.presp').html('Пароль сменен')
}
}
})
})
</script>
{% endblock %}

@ -1,25 +0,0 @@
{% extends 'articles_index.html' %}
{% load static %}
{% load course_filter %}
{% block title %}{{ article.title }}{% endblock %}
{% block head_title %}{% if article.head_title %}{{ article.head_title }}{% else %}Точка Кода{% endif %}{% endblock %}
{% block head_description1 %}{% if article.haed_description %}{{ article.haed_description }}{% else %}Школа программирования{% endif %}{% endblock %}
{% block head_description2 %}{% if article.haed_description %}{{ article.haed_description }}{% else %}Школа программирования{% endif %}{% endblock %}
{% block head_image %}{% if article.head_image %}{{ DOMAIN }}{{ article.head_image.url|safe }}{% else %}{{ DOMAIN }}static/img/3818cc0ec1.png{% endif %}{% endblock %}
{% block app-content-body %}style="background:#fff;"{% endblock %}
{% block head %}
{{ article.css|safe }}
{% endblock %}
{% block content %}
{{ article.page|safe }}
{% endblock %}
{% block js %}
{{ article.js|safe }}
{% endblock %}

@ -1,67 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Комментарий #{{ comment.id }}{% endblock %}
{% block content %}
<div class="col" style="padding-left: 20px; padding-right: 20px;">
<!-- main header -->
<div>
<div class="wrapper-lg" style="padding-bottom: 0; padding-top: 20px;">
<div class="row m-t">
<div class="clear m-b">
<div class="m-b m-t-sm">
<span class="h1 text text-u-c gread_title" style="font-size: 60px;">Комментарий #{{ comment.id }}</span><Br>
<p style="margin-top: 5px;
background: #f1f1f1;
padding: 5px 10px;
border-radius: 5px;">
{{ comment.date }}
<span style="float: right;"><i class="glyphicon glyphicon-user"></i> Автор: <a href="{{ comment.owner_model.get_profile }}">{{ comment.owner_model.get_username }}</a></span>
</p>
</div>
</div>
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row well well-lg">
{{ comment.text|safe }}
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
<div class="col w-md bg-white-only b-l bg-auto no-border-xs aside-col">
{% if request.user.is_authenticated %}
<div class="padder-md">
<!-- streamline -->
<div class="m-b m-t text-md">Последняя активность</div>
<div class="streamline b-l m-b">
<div class="sl-item b-success b-l">
<div class="m-l">
<div class="text-muted label-small">минуту назад<br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6</div>
<p>Ваше <a href class="text-info">домашнее задание</a> одобрено преподавателем.</p>
</div>
</div>
<div class="sl-item b-danger b-l">
<div class="m-l">
<div class="text-muted label-small">23:30 <br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6.</div>
<p>Ваше домашнее задание проверено преподавателем. Вам необходимо <a href class="text-info">провести работу над ошибками</a></p>
</div>
</div>
<div class="sl-item b-info b-l">
<div class="m-l">
<div class="text-muted label-small">понедельник, 03.02.2015<br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6.</div>
<p>Преподаватель <a href class="text-info">оставил комментарий</a></p>
</div>
</div>
</div>
<!-- / streamline -->
</div>
{% endif %}
</div>
<!-- / right col -->
{% endblock %}

@ -1,10 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>

@ -1,22 +0,0 @@
<div id="hypercomments_widget"></div>
<script type="text/javascript">
_hcwp = window._hcwp || [];
_hcwp.push({widget:"Stream",
widget_id: 83195,
auth_url: "{{ DOMAIN }}/?auth=True",
quote_disable: 1,
auth_logo: "{{ DOMAIN }}/static/img/mini_logo.png",
default_avatar: "{{ DOMAIN }}/static/img/mini_logo.png",
css: '{{ DOMAIN }}/static/css/hupercomment.css',
auth: '{{ COMMENT_USER_INFO|safe }}'
});
(function() {
if("HC_LOAD_INIT" in window)return;
HC_LOAD_INIT = true;
var lang = ("ru").substr(0, 2).toLowerCase();
var hcc = document.createElement("script"); hcc.type = "text/javascript"; hcc.async = true;
hcc.src = ("https:" == document.location.protocol ? "https" : "http")+"://w.hypercomments.com/widget/hc/83195/"+lang+"/widget.js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hcc, s.nextSibling);
})();
</script>

@ -1,48 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Контакты компании{% endblock %}
{% block page_title %}Контакты компании{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3" style=" margin-left: 10px !important;">
Контакты компании
</h1>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-3" style=" padding-top: 30px;
padding-bottom: 20px; margin-left: 15px;">
<b style="padding-bottom: 5px;">Наш офис</b><br>
<p style="margin-top: 5px;">Россия, Москва<br>Бауманская улица, 11с8</p>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-3" style=" padding-top: 30px;
padding-bottom: 20px;">
<b style="padding-bottom: 5px;">Юридическая информация</b><Br>
<p style="margin-top: 5px;">ИП Коропов Игорь Валентинович<br> ИНН 504793474705<br> ОГРНИП 314504727900026<br></p>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-3" style="padding-top: 30px; padding-bottom: 20px; width: 500px;">
<b style="padding-bottom: 5px;">Контакты</b><Br>
<div style="width: 200px; float: left">
<p style="margin-top: 5px;">Общие вопросы:</p>
hello@skillbox.ru<br>
Тел.: (495) 120-40-96 доб. 27<br>
</div>
<div style="width: 200px; float: right">
<p style="margin-top: 5px;">Тех вопросы:</p>
hello@skillbox.ru<br>
Тел.: (495) 120-40-96 доб. 25<br>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-3">
</div>
<div style="clear: both;width: 100%;padding: 0 30px;">
<script type="text/javascript" charset="utf-8" async src="https://api-maps.yandex.ru/services/constructor/1.0/js/?sid=J0PuKHX3ko7ickygDF7NKUV93Ddo6YNv&width=100%&height=600&lang=ru_RU&sourceType=constructor&scroll=true"></script>
</div>
</div>
{% endblock %}

@ -1,375 +0,0 @@
{% extends 'base_index.html' %}
{% load course_filter %}
{% block title %}Курс {{ course.head.title }}{% endblock %}
{% block content %}
<div class="col">
<div class="course_progress_bar" style=" width: 100%;
background: #ffc;
position: fixed;
z-index: 2000;left: 0;"></div>
<!-- main header -->
<div style="background:url({{ course.head.big_img }}) top right; background-size:cover">
<div class="visible-sm visible-xs" style="background-color: rgba(0, 0, 0, 0.5);">
<div class="wrapper-lg">
<div class="row m-t">
<div class="col-sm-7">
<div class="clear m-b">
<div class="panel-heading no-border" style="background: {{ course.head.level.background }};color:{{ course.head.level.color }};">
<span class="text-lt ">{{ course.head.level.title }} уровень</span>
</div>
<div class="m-b m-t-sm">
<span class="h1 text-u-c" style="font-weight: bold;color: #fff; ">
{{ course.head.title }}
</span>
</div>
{% if course.head.skills %}
<div style="color: #fff;margin-bottom: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for skill in course.head.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
{% endif %}
<div style="color: #fff;">
{{ course.head.lessons }} урока(-ов)
</div>
</div>
</div>
<div class="col-sm-5" style="text-align: center;">
{% if course.head.progress != 0 %}
<div class="chart" data-percent="{{ course.head.progress }}" data-scale-color="#fff"
style="text-align: center;color: #fff;">
<span id="canvas_length">{{ course.head.progress }}%</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="hidden-sm hidden-xs wrapper-lg">
<div class="row m-t">
<div class="col-sm-7">
<div class="clear m-b">
<div class="panel-heading no-border" style="background: {{ course.head.level.background }};color:{{ course.head.level.color }};">
<span class="text-lt ">{{ course.head.level.title }} уровень</span>
</div>
<div class="m-b m-t-sm">
<span class="h1 text-u-c" style="font-weight: bold;color: #fff; ">
{{ course.head.title }}
</span>
</div>
{% if course.head.skills %}
<div style="color: #fff;margin-bottom: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for skill in course.head.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
{% endif %}
<div style="color: #fff;">
{{ course.head.lessons }} урока(-ов)
</div>
</div>
</div>
<div class="col-sm-5" style="text-align: center;">
{% if course.head.progress != 0 %}
<div class="chart" data-percent="{{ course.head.progress }}" data-scale-color="#fff"
style="text-align: center;color: #fff;">
<span id="canvas_length">{{ course.head.progress }}%</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row">
<ul class="timeline">
<p style="float: right;margin-right: 10px;text-align: center;">
<i class="glyphicon glyphicon-ok"></i> &nbsp;Просмотрено &nbsp;
<i class="glyphicon glyphicon-time"></i> &nbsp;Доступно &nbsp;
<i class="glyphicon glyphicon-remove"></i> &nbsp;Не доступно &nbsp;
</p>
<li class="tl-header">
<div class="btn btn-success disabled">Старт</div>
</li>
<script>
window.e = 100/{{ course.length }};
</script>
{% for i in course.themes %}
{% if i.head.status.flag == 'A' %}
<script>
window.current = {{ i.head.mid }}
</script>
{% endif %}
<script>
$('.course_progress_bar').append('<div class="label label-progress label-{% if i.head.type.flag == 'Ex' %}warning{% else %}{{ i.head.status.color }}{% endif %}" onclick="$(\'html,body\').stop().animate({ scrollTop: $(\'[name=theme{{ i.head.mid }}]\').offset().top }, 1000);" data-toggle="tooltip" data-placement="bottom" title="{{ i.head.title|safe }}" style="cursor:pointer;height: 5px;width:'+window.e+'%;float:left;padding: 0;margin: 0;border-radius: 0;border-left: 1px solid #fff;"> </div>');
</script>
<li class="tl-item tl-left">
<div class="tl-wrap b-{{ i.head.status.color }}">
{% if i.head.lessons_length > 0 %}
{% if i.head.button %}
<a {% if flow or flow == None %}href="{{ i.head.button.link }}{{ i.head.button.id }}" by_type="{{ i.head.button.by_type }}" self_id="{{ i.head.button.id }}" course_id="{{ i.head.button.course }}"{% else %}style="cursor: default;border-bottom: 0;"{% endif %}>
{% else %}
<a href="#">
{% endif %}
{% else %}
{% for h in i.homework %}
<a href="{{ h.button.link }}{{ h.button.id }}" by_type="{{ h.button.by_type }}" self_id="{{ h.button.id }}" course_id="{{ h.button.course }}"
style="border-bottom: 1px dotted #999; padding-bottom: 5px;">
{% endfor %}
{% endif %}
<span class="tl-date" style="font-weight: bold;">
Тема {{ i.head.sort }}<br>
<img src="{{ i.head.icon }}" style="margin-top: 5px;max-height: 48px;max-width: 48px;border-radius: 10px;">
</span>
</a>
<div class="tl-content panel padder b-a col-lg-11" style="width: 100%;">
<span class="arrow left pull-up hidden-left visible-lg visible-md visible-sm"></span>
<span class="arrow right pull-up visible-left visible-lg visible-md visible-sm"></span>
<div class="text-lt m-b-sm" style="font-weight: bold; font-size: 16px;margin-bottom: 5px;float: left;width: 100%;padding: 0 3% 0 2%;">
<span style="float: left; margin: 5px 7px 0 0;">
{% if i.head.lessons_length > 0 %}
{% if i.head.button %}
{% if flow or flow == None %}
<a name="theme{{ i.head.mid }}" href="{{ i.head.button.link }}{{ i.head.button.id }}"
by_type="{{ i.head.button.by_type }}"
self_id="{{ i.head.button.id }}"
course_id="{{ i.head.button.course }}">
{% else %}
<a style="cursor: default;border-bottom: 0;">
{% endif %}
{% else %}
<a style="cursor: default;border-bottom: 0;">
{% endif %}
{% else %}
<!-- Ссылка на ДЗ -->
{% for h in i.homework %}
<a href="{{ h.button.link }}{{ h.button.id }}"
by_type="{{ h.button.by_type }}"
self_id="{{ h.button.id }}"
course_id="{{ h.button.course }}"
style="border-bottom: 1px dotted #999; padding-bottom: 5px;">
{% endfor %}
{% endif %}
{{ i.head.title|safe }}
</a>
{% if i.head.status.flag != 'N' and flow or flow == None %}
<span class="label font-normal text-white bg-{{ i.head.status.color }}" style="margin-left: 10px;">
{{ i.head.status.title }}<i class="{{ i.head.status.icon }}" style="margin-right: 5px; margin-left: 10px;"></i>
</span>
{% endif %}
</span>
{% if i.head.lessons_length > 1 %}
<div class="label label-info" style="float: right; margin: 5px 0 0 0;">Уроков: {{ i.head.lessons_length }}</div>
{% endif %}
</div>
<div class="panel-body p-b-none pull-in b-t b-light" style="margin-left: 2px;padding-bottom: 20px !important;clear: both;">
{% if i.head.skills %}
<div style="margin-bottom: 10px;background-color: #ffc;padding: 10px;margin-right: 20px;border-radius: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for n in i.head.skills %}
<span class="label font-normal text-default" style="background: {{ n.color }}">{% if n.mini_icon %}<img src="{{ n.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ n }}</span>
{% endfor %}
</div>
{% endif %}
{% if i.head.lessons_length > 1 %}
<ul style="padding: 0 0 0 15px;">
{% for lesson in i.lessons %}
<li style=" padding-bottom: 3px;">
{% if flow or flow == None %}
<a href="{{ lesson.button.link }}{{ lesson.button.id }}" by_type="{{ lesson.button.by_type }}"
self_id="{{ lesson.button.id }}" course_id="{{ lesson.button.course }}"
style="border-bottom: 1px dotted #333;color: #333;">
{{ lesson.title|safe }}
<span class="label font-normal text-white bg-{{ lesson.status.color }}"><i class="{{ lesson.status.icon }}"></i></span>
</a>
{% else %}
{{ lesson.title|safe }}
<span class="label font-normal text-white bg-{{ lesson.status.color }}"><i class="{{ lesson.status.icon }}"></i></span>
{% endif %}
</li>
{% endfor %}
</ul>
{% else %}
{% if i.head.lessons_length == 1 %}
{% for les in i.lessons %}
{% if les.status.flag != 'N' %}
<blockquote class="m-t m-b-none col-lg-8" style="clear: both;width: 100%;margin-bottom: 20px !important;margin-top:10px;">
<p>
<b>Статус урока: </b>
<span class="tags l-h-2x">
<span class="label font-normal text-white bg-{{ les.status.color }}" style="margin-left: 10px;{{ les.status.styles }}">{{ les.status.title|safe }}<i class="{{ les.status.icon }}" style="margin-left: 10px;"></i></span>
</span>
</p>
</blockquote>
{% endif %}
{% endfor %}
{% if i.head.description %}
<p><b>Описание:</b></p>
<div style="clear: both; padding-left: 10px;">
<a href="{{ i.head.button.link }}{{ i.head.button.id }}" by_type="{{ i.head.button.by_type }}" self_id="{{ i.head.button.id }}" course_id="{{ i.head.button.course }}">
<div>{{ i.head.description|safe }}</div>
</a>
</div>
{% endif %}
{% else %}
{% if i.head.description %}
<p><b>Описание:</b></p>
<div style="clear: both; padding-left: 10px;">
<a href="{{ i.head.button.link }}{{ i.head.button.id }}" by_type="{{ i.head.button.by_type }}" self_id="{{ i.head.button.id }}" course_id="{{ i.head.button.course }}">
<div>{{ i.head.description|safe }}</div>
</a>
</div>
{% endif %}
{% endif %}
{% endif %}
{% if i.homeworks_length != 0 %}
{% for h in i.homework %}
{% if i.head.lessons_length == 0 %}
<blockquote class="m-t m-b-none col-lg-8">
<p><a href="{{ h.button.link }}{{ h.button.id }}" by_type="{{ h.button.by_type }}" self_id="{{ h.button.id }}" course_id="{{ h.button.course }}"
style="border-bottom: 0; padding-bottom: 5px;">
{{ h.description|safe }}
</a>
<span class="tags l-h-2x">
<span class="label font-normal text-white bg-{{ h.status.color }}" style="margin-left: 10px;{{ h.status.styles }}">{{ h.status.title|safe }}<i class="{{ h.status.icon }}" style="margin-left: 10px;"></i></span>
{% if h.status.flag == 'T' or h.status.flag == 'A' %}
{% if h.delay.status %}
<br><i class="glyphicon glyphicon-info-sign" style="color: red"></i> Могут быть незначительные задержки с проверкой{% if h.delay.description %}: <b>"{{ h.delay.description|safe }}"</b>{% endif %}
{% endif %}
{% endif %}
</span>
</p>
</blockquote>
{% else %}
<blockquote class="m-t m-b-none col-lg-8">
<p><a href="{{ h.button.link }}{{ h.button.id }}" by_type="{{ h.button.by_type }}" self_id="{{ h.button.id }}" course_id="{{ h.button.course }}"
style="border-bottom: 1px dotted #999; padding-bottom: 5px;">
<span class="icon icon-graduation "></span>&nbsp;&nbsp;<b style="margin-left: 5px;">Домашнее задание:</b>
</a>
<span class="tags l-h-2x">
<span class="label font-normal text-white bg-{{ h.status.color }}" style="margin-left: 10px;{{ h.status.styles }}">{{ h.status.title|safe }}<i class="{{ h.status.icon }}" style="margin-left: 10px;"></i></span>
{% if h.status.flag == 'T' or h.status.flag == 'A' %}
{% if h.delay.status %}
<br><i class="glyphicon glyphicon-info-sign" style="color: red"></i> Могут быть незначительные задержки с проверкой{% if h.delay.description %}: <b>"{{ h.delay.description|safe }}"</b>{% endif %}
{% endif %}
{% endif %}
</span>
</p>
</blockquote>
{% endif %}
{% endfor %}
{% endif %}
{% if i.head.status.flag != 'N' %}
{% if i.head.button %}
<div style="clear: both; width: 100%; margin-top: 10px;">
{% if flow or flow == None %}
<a type="button" class="flow" href="{{ i.head.button.link }}{{ i.head.button.id }}">
<button class="btn pull-right btn-lg m-b-xs m-r-xs m-t-lg course_button"
style="background: {{ i.head.button.background }}; color: {{ i.head.button.color }}"
by_type="{{ i.head.button.by_type }}"
self_id="{{ i.head.button.id }}"
course_id="{{ i.head.button.course }}">
{{ i.head.button.title }}
</button>
</a>
{% else %}
<a type="button" class="flow" href="#">
<button class="btn pull-right btn-lg m-b-xs m-r-xs m-t-lg course_button"
style="background: {{ i.head.button.background }}; color: {{ i.head.button.color }}">
{{ i.head.button.title }}
</button>
</a>
{% endif %}
</div>
{% endif %}
{% endif %}
</div>
</div>
</div>
</li>
{% endfor %}
<li class="tl-header">
<div class="btn btn-success disabled">Финиш</div>
</li>
</ul>
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
{% include 'right_site.html' %}
{% endblock %}
{% block js %}
<script>
$('html,body').stop().animate({ scrollTop: $('[name=theme'+{% if request.GET.no_current %}{{ request.GET.no_current }}{% else %}window.current{% endif %}+']').offset().top }, 1000);
</script>
<script>
var flow = "{{ flow }}";
$(function() {
$('.chart').easyPieChart({
rotate: 0,
lineWidth: 60,
trackColor: 'rgba(255,255,255,0)',
barColor: 'rgba(35,183,229,0.7)',
size: 120,
lineCap: 'butt',
animate: 1000,
scaleLength: 0
});
$('[data-toggle="tooltip"]').tooltip()
// Проверка доступности уроков(старт потока)
// если поток открыт редирект на урок
if ($('.flow').attr('href') === '#') {
$('.flow').on('click', function(e){
e.preventDefault();
var path = document.location.pathname;
$.get(path, function(data){
_flow = $(data).find('.flow').attr('href');
if (_flow === '#'){
$('#flowAccess').modal('show');
}
else {
document.location.href = _flow;
}
//console.log(_flow);
});
});
}
if(flow == 'False'){
$('#flowAccess').modal('show');
}
});
</script>
{% endblock %}

@ -1,14 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Рабочий кабинет{% endblock %}
{% block content %}
<div class="name">Массовое открытие дипломов</div>
<form enctype="multipart/form-data" method="post" >
{% csrf_token %}
<table>
{{form.as_table}}
</table>
<div class="errors">{{ ERROR }}</div>
<input type="submit" value="Submit" id="Save"/>
</form>
{% endblock %}

@ -1,165 +0,0 @@
<div class="modal fade" id="NewEmailChanged" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/pass_success.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Новый Email</p>
<p class="text_myModal4">Ваш почтовый ящик изменен.</p>
<button type="button" class="btn btn-warning btn-lg js-open-modal" data-dismiss="modal" aria-label="Close">Закрыть</button>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<div class="modal fade" id="FeedBack" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('new_feedback_form', 'error_new_feedback')"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1447223559_new_seo2-28.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Задайте свой вопрос</p>
<form action="" class="m-t-md" onsubmit="return false;" name="new_feedback_form">
<p class="error" id="error_new_feedback" style="display: none"></p>
<input type="text" placeholder="Имя" name="name" {% if request.user.is_authenticated %}value="{{ request.user.get_full_name }}"{% endif %}><br>
<input type="email" placeholder="E-mail" name="email" {% if request.user.is_authenticated %}value="{{ request.user.email }}"{% endif %}><br>
<input type="text" placeholder="Телефон" name="phone" {% if request.user.is_authenticated %}value="{{ request.user.phone }}"{% endif %}><br>
<p style="padding-bottom: 0; margin-top: 20px;">Текст обращения</p>
<textarea name="text" class="form-control"></textarea>
<button class="btn btn-warning btn-lg" onclick="new_feedback()">Отправить</button>
</form>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<div class="modal fade" id="FeedBackSuccess" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/pass_success.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Задать вопрос</p>
<p class="text_myModal4">Вопрос отправлен</p>
<button type="button" class="btn btn-warning btn-lg js-open-modal" data-dismiss="modal" aria-label="Close">Закрыть</button>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
{% if request.GET.success_pay %}
<img src="//apypxl.com/ok/10843.png?actionpay=[click].[source]&apid=[action_id]&price=[price]" height="1" width="1" />
<script type="text/javascript">
window._retag_data = {
};
window._retag = window._retag || [];
window._retag.push({code: "9ce8887712"});
(function () {
var id = "admitad-retag";
if (document.getElementById(id)) {return;}
var s = document.createElement("script");
s.async = true; s.id = id;
var r = (new Date).getDate();
s.src = (document.location.protocol == "https:" ? "https:" : "http:") + "//cdn.lenmit.com/static/js/retag.min.js?r="+r;
var a = document.getElementsByTagName("script")[0]
a.parentNode.insertBefore(s, a);
})()
</script>
<!-- Modal Окно success pay -->
<div class="modal fade" id="SuccessPay" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1444990049_check.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Счет оплачен</p>
<p class="text_myModal4">Желаем вам продуктивного обучения.</p>
{% if request.GET.course_id %}
<a type="button" class="btn btn-success btn-lg" href="/courses/{{ request.GET.course_id }}">Страницы курса</a>
{% endif %}
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<script>
$('#SuccessPay').modal('show')
</script>
{% endif %}
{% if request.GET.fail_pay %}
<!-- Modal Окно fail pay -->
<div class="modal fade" id="FailPay" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1444989073_wrong_table_no_navigator_formula.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Платеж не принят</p>
<p class="text_myModal4">Во время проведеня платежа произошла ошибка.</p>
{% if request.GET.fail_pay_id %}
<button type="button" class="btn btn-success btn-lg" onclick="reply_bill({{ request.GET.fail_pay_id }})">Получить новый счет</button>
{% endif %}
{% if request.GET.fail_url %}
<a type="button" class="btn btn-success btn-lg" href="{{ request.GET.fail_url }}" target="_blank">Повторить оплату</a>
{% endif %}
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<script>
$('#FailPay').modal('show')
</script>
{% endif %}

@ -1,333 +0,0 @@
{% extends 'base_index.html' %}
{% block head %}
<script src="/static/js/ckeditor/ckeditor.js"></script>
<script src="/static/js/ckeditor/adapters/jquery.js"></script>
{% endblock %}
{% block title %}{{ course.head.title }} / Домашнее задание{% endblock %}
<!-- content -->
{% block content %}
{% if exam.heaad.status == 'T' %}
<script>
$('[name=big_info_block]').html('Ваше задание проверяется преподавателем').fadeIn('fast')
</script>
{% endif %}
<!-- main -->
<div class="col">
<!-- main header -->
<div style="background:url({{ course.head.big_img }}) top right; background-size:cover">
<div class="visible-sm visible-xs" style="background-color: rgba(0, 0, 0, 0.5);">
<div class="wrapper-lg">
<div class="row m-t">
<div class="col-sm-7">
<div class="clear m-b">
<div class="panel-heading no-border" style="background: {{ course.level.background }};color:{{ course.level.color }};">
<span class="text-lt ">{{ course.level.title }} уровень</span>
</div>
<div class="m-b m-t-sm">
<span class="h1 text-warning text-u-c" style="font-weight: bold;">
{{ course.head.title }}
</span>
</div>
<div style="color: #fff;margin-bottom: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for skill in course.head.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
<div style="color: #fff;">
{{ course.head.lessons }} урока(-ов)
</div>
</div>
</div>
<div class="col-sm-5" style="text-align: center;">
{% if course.head.progress != 0 %}
<div class="chart" data-percent="{{ course.head.progress }}" data-scale-color="#fff"
style="text-align: center;color: #fff;">
<span id="canvas_length">{{ course.head.progress }}%</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="hidden-sm hidden-xs wrapper-lg">
<div class="row m-t">
<div class="col-sm-7">
<div class="clear m-b">
<div class="panel-heading no-border" style="background: {{ course.level.background }};color:{{ course.level.color }};">
<span class="text-lt ">{{ course.level.title }} уровень</span>
</div>
<div class="m-b m-t-sm">
<span class="h1 text-warning text-u-c" style="font-weight: bold;">
{{ course.head.title }}
</span>
</div>
<div style="color: #fff;margin-bottom: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for skill in course.head.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
<div style="color: #fff;">
{{ course.head.lessons }} урока(-ов)
</div>
</div>
</div>
<div class="col-sm-5" style="text-align: center;">
{% if course.head.progress != 0 %}
<div class="chart" data-percent="{{ course.head.progress }}" data-scale-color="#fff"
style="text-align: center;color: #fff;">
<span id="canvas_length">{{ course.head.progress }}%</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="wrapper bg-white b-b">
<ul class="nav nav-pills nav-sm">
<li>
<a type="button" style="width: 100%;" class="col-lg-10 btn btn-default dropdown-toggle" href="/courses/{{ course.head.course_id }}">
<i class="glyphicon glyphicon-chevron-left"></i> &nbsp;Страница курса
</a>
</li>
<!-- Кнопка нового урока -->
<li name="next_button" {% if exam.head.status.flag != 'F' %}style="display: none;"{% endif %}>
<a type="button" href="{{ exam.next.button.link }}{{ exam.next.obj.id }}" style="background: {{ exam.next.button.background }}; color: {{ exam.next.button.color }}"
by_type="{{ exam.next.button.by_type }}"
self_id="{{ exam.next.obj.id }}"
course_id="{{ exam.next.obj.course.id }}">
{{ exam.next.button.title }} <i class="glyphicon glyphicon-chevron-right"></i>
</a>
</li>
<!-- Статус -->
<li style="float: right; padding: 6px 12px;">
<span style="padding: 6px 12px;font-weight: bold;">
<span class="label font-normal text-white bg-{{ exam.head.status.color }}" style="margin-left: 10px;font-size: 19px;{{ exam.head.status.styles }}">{{ exam.head.status.title }}<i class="{{ exam.head.status.icon }}" style="margin-right: 5px; margin-left: 10px; top: 3px;"></i></span>
</span>
</li>
</ul>
</div>
<div class="wrapper-md">
<div class="row m-l-xs">
<div class="panel col-lg-6 p-r-none">
<div class="wrapper-lg">
<h2 class="m-t-none text-black">Описание задания</h2>
<div>
{{ exam.head.description|safe }}
</div>
</div>
</div>
<div class="col-lg-6 pl-fix p-r-none">
<div class="col-lg-12 p-l-none p-r-none">
{% if exam.materials %}
<div class="col-sm-12">
<div draggable="true" class="panel panel-info">
<div class="panel-heading">
Материалы к заданию
</div>
{% for i in exam.materials %}
<div class="list-group bg-white">
{% if i.format == 'I' %}
<a href="{{ i.url }}" class="list-group-item" target="_blank" id="single_image">
{% else %}
<a href="{{ i.url }}" class="list-group-item" target="_blank">
{% endif %}
{% if i.icon_type != 'class' %}
<img src="{{ i.icon }}">
{% else %}
<i class="{{ i.icon }} text-lg inline text-primary"></i>
{% endif %}
<span class="clear inline">
<span>{{ i.title }}</span>
<small class="text-muted clear text-ellipsis">{{ i.name }}</small>
</span>
</a>
</div>
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div class="row">
<a name="comment_list_place"></a>
{% if exam.tries %}
<h3 style="margin-bottom: 25px;margin-left: 20px;font-weight: bold;border-bottom: 1px dotted #ccc;padding-bottom: 5px;"><i class="glyphicon glyphicon-briefcase"></i>&nbsp;Попыток: (<span name="comments_length">{{ exam.tries|length }}</span>) : </h3>
{% endif %}
<div class="col-lg-12" name="exam_comments_block">
{% if exam.tries %}
{% for try in exam.tries %}
<div class="m-b b-l m-l-md streamline" name="try_comments_{{ try.id }}" exam_id="{{ exam.head.mid }}">
<div name="try_{{ try.id }}">
<span class="pull-left thumb-sm avatar m-l-n-md">
<img src="/static/img/mini_logo.png" class="img-circle"></span>
<div class="m-l-lg panel b-a" style="background:#CCFFFF;">
<div class="panel-heading pos-rlt b-b b-light">
<span class="arrow left" style="display: none;"></span>
<b>LMS: ~# </b>
<span class="arrow left" style="border-right-color:#CCFFFF;"></span>
<span style="font-size: 16px;color: #666;font-weight: bold;">Попытка №{{ forloop.counter }}</span>
<script>window.last_try = {{ forloop.counter }}</script>
<span class="text-muted m-l-sm pull-right" style="margin-top: -6px;">
<span class="label font-normal text-white bg-success" style="margin-left: 10px;text-shadow: 0 0 0;font-size: 16px">
<span class="hidden-xs hidden-sm">{{ try.teacher.get_full_name }}</span>
<span class="hidden-md hidden-lg">{{ try.teacher.get_short_name }}</span>
<span class="thumb-sm avatar" style="margin-left: 10px;top: -3px;position: relative;">
<img src="{{ try.teacher.get_image_url }}" class="img-circle">
</span>
</span>
<span class="label font-normal text-white bg-{{ try.status.color }}" style="margin-left: 10px;font-size: 19px;font-weight: bold;{{ try.status.styles }}">
<span class="hidden-sm hidden-xs hidden-md">{{ try.status.title }}</span><i class="{{ try.status.icon }}" style="top: 3px; margin: 0 15px;"></i>
</span>
</span>
</div>
</div>
<!-- -->
</div>
{% for comment in try.comments %}
<a href="comment{{ comment.id }}"></a>
<div name="comment_{{ comment.id }}">
<span class="pull-left thumb-sm avatar m-l-n-md">
<img src="{{ comment.owner_avatar }}" class="img-circle"></span>
<div class="m-l-lg panel b-a" style="background: {% if comment.owner_type.flag == 'T' %}#f5fce5{% endif %}">
<div class="panel-heading pos-rlt b-b b-light">
<span class="arrow left" style="display: none;"></span>
<b style="margin-right: 5px;">{{ comment.owner }}</b>
<span class="arrow left" style="border-right-color: {% if comment.owner_type.flag == 'T' %}#f5fce5{% endif %}"></span>
<label class="label {{ comment.owner_type.background }} m-l-xs">{{ comment.owner_type.title }}</label>
<span class="text-muted m-l-sm pull-right">{{ comment.date }}</span>
</div>
<div class="panel-body" readable_comment="{{ comment.id }}">
<div class="m-b-xs">{{ comment.text|safe }}</div>
{% for file in comment.files %}
<div name="message_files" message_id="{{ comment.id }}">
<div class="panel m-b-none" style="box-shadow: none; border: 1px solid rgba(0, 0, 0, 0.05); padding: 4px; margin-bottom: 3px !important;">
<a href="{{ file.url }}" target="{% if file.format == 'F' %}_blank{% endif %}" id="">
<i class="{{ file.icon }} text-primary"></i> &nbsp;{{ file.name }}
</a>
</div>
</div>
{% endfor %}
</div>
</div>
<!-- -->
</div>
{% endfor %}
</div>
{% endfor %}
{% endif %}
{% if request.user.is_authenticated %}
{% if exam.head.status.flag != 'N' and exam.head.status.flag != 'F' %}
<div class="progress" name="sent_comment_progress" style="height: 40px;display: none;">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%; font-weight: bold; font-size: 15px;padding: 10px;">
ОТПРАВКА КОММЕНТАРИЯ
</div>
</div>
<a name="comment_send_form_place"></a>
<form name="comment_send_form" onsubmit="return false" method="POST">
<h3 style="margin-bottom: 10px;
margin-left: 40px;font-weight: bold;border-top: 1px dotted #ccc;padding-top: 10px;"><i class="glyphicon glyphicon-comment"></i>&nbsp;ОСТАВИТЬ СООБЩЕНИЕ <span name="reply_info"></span>: </h3>
<div style="background: #ccc;
padding: 10px;
margin-left: 15px;
border-radius: 20px 20px 0 0;
text-align: center;">
{% if request.user.is_authenticated and resuqest.user.in_role == 'Ts' or request.user.in_role == 'A' %}
<i class="glyphicon glyphicon-wrench" style=" font-size: 40px;
float: left;
padding-right: 20px;"></i>
<span class="btn btn-default btn-lg" onclick="CKEDITOR.instances.homework_text.setData('TEXT');send_comment('comment_send_form', 'form_file_load')">Просто отправить</span>
<span class="btn btn-success btn-lg" onclick="CKEDITOR.instances.homework_text.setData('GO_TO_SUCCESS');send_comment('comment_send_form', 'form_file_load')">Заставить одобрить</span>
<span class="btn btn-danger btn-lg" onclick="CKEDITOR.instances.homework_text.setData('GO_TO_FAIL');send_comment('comment_send_form', 'form_file_load')">Заставить отказать</span>
{% endif %}
</div>
<div class="clearfix" style="margin-bottom:10px;">
<div class="form-group">
<div class="col-sm-12 p-r-none">
<input type="text" name="exam_id" readonly value="{{ exam.head.id }}" style="display: none;">
<textarea style="overflow:scroll;height:200px;max-height:200px;width: 100%;border-radius:3px;font-weight: bold;padding: 15px 20px;" name="exam_text" class="form-control"></textarea>
</div>
</div>
</div>
<div class="form-group">
<div class="col-xs-12 col-sm-12 col-md-9 p-r-none m-b-md" name="files_sketches">
</div>
<div class="col-xs-12 col-sm-12 col-md-3 p-r-none m-b-md">
<button class="btn btn-lg btn-info m-t-xs pull-right" style="min-width: 240px;width: 100%;border-radius: 3px;" onclick="send_comment('comment_send_form', 'form_file_load')">Отправить сообщение</button>
</div>
</div>
</form>
<form enctype='multipart/form-data'
action='/storage/upload_file/'
method='post'
name='load_file'
id="form_file_load_form"
target='hidden_frame'
class="load_file" style="text-align: right; clear: right; margin-bottom: 20px;">
<input type='hidden' name='MAX_FILE_SIZE' value='64000'>
<input id="form_file_load" name='file_load' type='file' data-icon="false" data-classbutton="btn btn-default" data-classinput="form-control inline v-middle input-s" tabindex="-1"
style="outline: 0;background: #ffc; padding: 5px 10px;border-radius: 5px;margin: auto;position: absolute; clip: rect(0px, 0px, 0px, 0px);" sketch_place="files_sketches">
<button class="btn btn-default" onclick="return false;" style="display: none;" name="form_file_load_progress">
<img src="/static/img/ui-anim_basic_16x16.gif">
</button>
<div class="bootstrap-filestyle input-group" name="form_file_load_button">
<span tabindex="0" class="group-span-filestyle input-group-btn" style="text-align: right;">
<label for="form_file_load" class="btn btn-default ">
<span><span class="glyphicon glyphicon-save-file"></span> Добавить файл</span>
</label>
</span>
</div>
<input type="text" name="clip_file_id" readonly value="0" style="display: none;">
</form>
{% endif %}
{% else %}
<p>Для работы с домашним заданием, авторизуйтесь.</p>
{% endif %}
</div>
</div>
</div>
</div>
<!-- / main header -->
<!-- / main -->
{% include 'right_site.html' %}
<!-- / right col -->
<input name="exam_ID" value="{{ exam.id }}" style="display: none;">
{% endblock %}
<!-- / content -->
{% block js %}
<script type="text/javascript" src='/static/js/exam.js'></script>
<!--<script type="text/javascript" src='/static/js/video_reloader.js'></script>-->
<script>
$(function() {
$('.chart').easyPieChart({
rotate: 0,
lineWidth: 57,
trackColor: 'rgba(255,255,255,0)',
barColor: 'rgba(35,183,229,0.7)',
size: 120,
lineCap: 'butt',
animate: 1000,
scaleLength: 0
});
});
</script>
{% endblock %}

@ -1,185 +0,0 @@
{% extends 'base_index.html' %}
{% load static %}
{% load course_filter %}
{% block page_title %}Доступные курсы{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">
Доступные курсы
</h1>
</div>
</div>
</div>
<div class="wrapper-md">
{% for i in courses %}
<div class="col-lg-6">
<div class="panel b-a" style="overflow: hidden;">
{% if i.level == 'B' %}
<div class="panel-heading no-border bg-success">
<span class="text-lt ">{{ i.get_level_display }} уровень</span>
</div>
{% else %}
{% if i.level == 'A' %}
<div class="panel-heading no-border bg-warning">
<span class="text-lt ">{{ i.get_level_display }} уровень</span>
</div>
{% else %}
{% if i.level == 'E' %}
<div class="panel-heading no-border bg-danger">
<span class="text-lt ">{{ i.get_level_display }} уровень</span>
</div>
{% endif %}
{% endif %}
{% endif %}
<div class="item m-l-n-xxs m-r-n-xxs" style="height: 290px;background:url({{ i.get_image }}) no-repeat center center; background-size: cover;">
<div class="bottom wrapper bg-gd-dk text-white" style="width: 100%;">
{% if i.id|get_progress_persent:request.user.id != 0 %}
<div class="chart" data-percent="{{ i.id|get_progress_persent:request.user.id }}" data-scale-color="#fff"
style="text-align: center;">
<span id="canvas_length">{{ i.id|get_progress_persent:request.user.id }}%</span>
</div>
{% endif %}
<div class="text-u-c h3 m-b-none text-primary-lter">{{ i.title }}</div>
{{ i.lessons_length }} урока(-ов)
<div style="color: #fff;margin-bottom: 5px;">
{% for skill in i.get_skills %}
<span class="label font-normal text-white" style="background: {{ skill.skill.color }}">{{ skill.skill }}</span>
{% endfor %}
</div>
</div>
<div class="tags l-h-2x">
{% for n in i.skills %}
<span class="label font-normal text-white" style="background: {{ i.background }}">{{ i.skill }}</span>
{% endfor %}
</div>
</div>
<div class="hbox text-center text-sm">
<a href="/courses/{{ i.id }}" class="col-md-8 col-xs-8 bg-warning padder-v b-light" style="width: 100%;">
<i class="icon-rocket block m-b-xs fa-2x text-black"></i>
<span class="text-black">Приступить</span>
</a>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
<div class="col w-md bg-white-only b-l bg-auto no-border-xs aside-col">
{% if request.user.is_authenticated %}
{% if actions %}
<div class="padder-md">
<!-- streamline -->
<div class="m-b m-t text-md" style="margin-bottom: 0;">Последняя активность<p style="margin-bottom: 10px;"><a href="/access/all_actions/" style=" font-size: 12px;
color: blue;
border-bottom: 1px dotted">ВСЯ ИСТОРИЯ</a></p></div>
<div class="streamline b-l m-b">
{% for i in actions %}
<div class="sl-item {{ i.get_a_type_display }} b-l">
<div class="m-l">
<div class="text-muted label-small">{{ i.date }}<br>{{ i.place }}</div>
<p>{{ i.text|safe }}</p>
</div>
</div>
{% endfor %}
</div>
<!-- / streamline -->
</div>
{% endif %}
{% endif %}
<!--
<div class="panel-body">
<div class="m-b m-t text-md" style="margin-top: 0;">Новости Школы</div>
<div id="news_block"></div>
</div>
-->
<!-- aside right -->
<div class="app-aside-right pos-fix no-padder w-md w-auto-xs bg-white b-l animated fadeInRight hide">
<div class="vbox">
<div class="wrapper b-b b-t b-light m-b">
<a href class="pull-right text-muted text-md" ui-toggle-class="show" target=".app-aside-right"><i class="icon-close"></i></a>
Chat
</div>
<div class="row-row">
<div class="cell">
<div class="cell-inner padder">
<!-- chat list -->
<div class="m-b">
<a href class="pull-left thumb-xs avatar"><img src="/static/img/a2.jpg" alt="..."></a>
<div class="clear">
<div class="pos-rlt wrapper-sm b b-light r m-l-sm">
<span class="arrow left pull-up"></span>
<p class="m-b-none">Hi John, What's up...</p>
</div>
<small class="text-muted m-l-sm"><i class="fa fa-ok text-success"></i> 2 minutes ago</small>
</div>
</div>
<div class="m-b">
<a href class="pull-right thumb-xs avatar"><img src="/static/img/a3.jpg" class="img-circle" alt="..."></a>
<div class="clear">
<div class="pos-rlt wrapper-sm bg-light r m-r-sm">
<span class="arrow right pull-up arrow-light"></span>
<p class="m-b-none">Lorem ipsum dolor :)</p>
</div>
<small class="text-muted">1 minutes ago</small>
</div>
</div>
<div class="m-b">
<a href class="pull-left thumb-xs avatar"><img src="/static/img/a2.jpg" alt="..."></a>
<div class="clear">
<div class="pos-rlt wrapper-sm b b-light r m-l-sm">
<span class="arrow left pull-up"></span>
<p class="m-b-none">Great!</p>
</div>
<small class="text-muted m-l-sm"><i class="fa fa-ok text-success"></i>Just Now</small>
</div>
</div>
<!-- / chat list -->
</div>
</div>
</div>
<div class="wrapper m-t b-t b-light">
<form class="m-b-none">
<div class="input-group">
<input type="text" class="form-control" placeholder="Say something">
<span class="input-group-btn">
<button class="btn btn-default" type="button">SEND</button>
</span>
</div>
</form>
</div>
</div>
</div>
<!-- / aside right -->
</div>
{% endblock %}
{% block js %}
<script type="text/javascript" src='/static/js/index.js'></script>
<script>
$(function() {
$('.chart').easyPieChart({
rotate: 0,
lineWidth: 57,
trackColor: 'rgba(255,255,255,0)',
barColor: 'rgba(35,183,229,0.7)',
size: 120,
lineCap: 'butt',
animate: 1000,
scaleLength: 0
});
});
</script>
{% endblock %}

@ -1,111 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Часто задаваемые вопросы{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">
<i class="glyphicon glyphicon-question-sign"></i> {% if admin %}Внутренняя Ф@ка{% else %}Помощь в системе{% endif %}
</h1>
</div>
</div>
</div>
<div class="wrapper-md">
{% if a_faqs %}
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="false" style="clear: both;">
{% for i in a_faqs %}
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading{{ i.id }}">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse{{ i.id }}" aria-expanded="false" aria-controls="collapse{{ i.id }}">
<img src="{{ i.icon }}" style=" max-height: 20px;
float: left;
margin-right: 5px;">
{{ i.title }}
</a>
</h4>
</div>
<div id="collapse{{ i.id }}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="heading{{ i.id }}">
<div class="panel-body">
<ul>
{% for n in i.answers %}
<li><a href="/management/faq/{{ n.id }}">{{ n.question|safe }}</a></li>
{% endfor %}
</ul>
</div>
</div>
</div>
{% endfor %}
</div>
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">
<i class="glyphicon glyphicon-question-sign"></i> {% if admin %}Пользовательская Ф@ка{% endif %}
</h1>
</div>
</div>
</div>
{% endif %}
<div class="col-lg-6" id="1"></div>
<div class="col-lg-6" id="2"></div>
{% for i in faqs %}
<script>
$('#{% cycle '2' '1' %}').append(
'<div class="panel b-a" style="overflow: hidden; clear: both;">' +
'<div class="panel-heading no-border" style=" background: #ffcd00;font-weight: bold;font-size: 17px;">' +
'<img src="{{ i.icon }}" style="margin-right: 10px;max-height: 46px;max-width: 46px;"> {{ i.title }}' +
'</div>' +
'<div class="item m-l-n-xxs m-r-n-xxs">' +
'<div class="bottom wrapper bg-gd-dk text-white" style="width: 100%;padding:0; position: relative;">' +
'<div class="panel-group" id="accordion{{ i.id }}" role="tablist" aria-multiselectable="true" style="margin-bottom: 0;">' +
{% for n in i.answers %}
'<div class="panel panel-default" style="margin: 0; border-radius: 0;">' +
'<a data-toggle="collapse" data-parent="#accordion{{ i.id }}" key="{{ i.id }}_{{ forloop.counter }}" ' +
'href="#collapse{{ i.id }}_{{ forloop.counter }}"' +
'aria-expanded="true" style="color: #333; font-size: 14px;"' +
'aria-controls="collapse{{ i.id }}_{{ forloop.counter }}" onclick="change_faq_vector($(this).attr(\'key\'))">' +
'<div class="panel-heading" role="tab" id="heading{{ i.id }}_{{ forloop.counter }}" style=" font-size: 14px;">' +
'<div class="panel-title" style=" padding: 0 35px; font-size: 14px;">' +
'<i class="glyphicon glyphicon-chevron-right" name="vector" set="false" id="{{ i.id }}_{{ forloop.counter }}" style="transform: rotate(0deg);transition: 0.25s"></i> {{ n.question|safe }}' +
'</div>' +
'</div>' +
'</a>' +
'<div id="collapse{{ i.id }}_{{ forloop.counter }}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading{{ i.id }}_{{ forloop.counter }}">' +
'<div class="panel-body" style="color: #333; padding: 20px 10%;">' +
'{{ n.answer|safe }}' +
'</div>' +
'</div>' +
'</div>' +
{% endfor %}
'</div>' +
'</div>' +
'</div>' +
'</div>'
)
</script>
{% endfor %}
</div>
</div>
{% include 'right_site.html' %}
{% endblock %}
{% block js %}
<script>
function change_faq_vector(key) {
var bl = $('#'+key);
if (bl.attr('set') == 'true'){
bl.css('transform', 'rotate(0deg)').attr('set', false);
} else {
$('[name=vector][set=true]').css('transform', 'rotate(0deg)').attr('set', false);
bl.css('transform', 'rotate(90deg)').attr('set', true);
}
}
</script>
{% endblock %}

@ -1,25 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Часто задаваемые вопросы{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">
<a href="/management/faq/" style="margin-left: 10px;margin-right: 20px;"><i class="glyphicon glyphicon-chevron-left"></i> Назад</a>
<i class="glyphicon glyphicon-education"></i> {{ faq.question }}
{% if request.user.is_authenticated and request.user.is_admin %}
<div style="float: right;
background: #ff1;
padding: 5px;
border-radius: 3px;
border: 1px dotted #ccc;"><a href="http://go.skillbox.ru/admin/management/faq/{{ faq.id }}" target="_blank"><i class="glyphicon glyphicon-pencil"></i> </a></div>
{% endif %}
</h1>
</div>
</div>
</div>
<div class="wrapper-md" style=" background: #ffc;">{{ faq.answer|safe }}</div>
</div>
{% include 'right_site.html' %}
{% endblock %}

@ -1,55 +0,0 @@
{% extends 'reports/base_index.html' %}
{% load course_filter %}
{% block title %}Бесплатная неделя{% endblock %}
{% block page_title %}Бесплатная неделя{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
<h3 style="margin-left: 20px;margin-top:40px;font-weight: bold;border-top: 1px dotted #ccc;padding-top: 30px;">
<i class="glyphicon glyphicon-equalizer"></i> {{ title }}
</h3>
<table class="table table-hover" style="background: #ffc;">
<tr style="font-weight: bold;background: #ccc;">
<td>Всего пользователей</td>
<td>Прошли активацию</td>
<td>Java <i>[ {{ java.all }} ]</i></td>
<td>Web <i>[ {{ web.all }} ]</i></td>
<td>Android <i>[ {{ android.all }} ]</i></td>
<td>C# <i>[ {{ csh.all }} ]</i></td>
</tr>
<tr>
<td style="border-right: 1px dotted #ccc;">{{ all }}</td>
<td style="border-right: 1px dotted #ccc;">{{ active.count }} <i>[{{ active.persent }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">
Проходят обучение: {{ java.in.count }}<br>
Получили домашку: {{ java.in_hw }}<br>
Сдали домашку: {{ java.out_hw }}<br>
</td>
<td style="border-right: 1px dotted #ccc;">
Проходят обучение: {{ web.in.count }}<br>
Получили домашку: {{ web.in_hw }}<br>
Сдали домашку: {{ web.out_hw }}<br>
</td>
<td style="border-right: 1px dotted #ccc;">
Проходят обучение: {{ android.in.count }}<br>
Получили домашку: {{ android.in_hw }}<br>
Сдали домашку: {{ android.out_hw }}<br>
</td>
<td style="border-right: 1px dotted #ccc;">
Проходят обучение: {{ csh.in.count }}<br>
Получили домашку: {{ csh.in_hw }}<br>
Сдали домашку: {{ csh.out_hw }}<br>
</td>
</tr>
<tr>
<td></td>
<td></td>
<td><a href="#" style="color: #00bdff;border-bottom: 1px dotted #00bdff;">Открыть конкретику</a></td>
<td><a href="#" style="color: #00bdff;border-bottom: 1px dotted #00bdff;">Открыть конкретику</a></td>
<td><a href="#" style="color: #00bdff;border-bottom: 1px dotted #00bdff;">Открыть конкретику</a></td>
<td><a href="#" style="color: #00bdff;border-bottom: 1px dotted #00bdff;">Открыть конкретику</a></td>
</tr>
</table>
{% endblock %}
{% block js %}
{% endblock %}

@ -1,185 +0,0 @@
{% extends 'base_index.html' %}
{% load static %}
{% load course_filter %}
{% block page_title %}Доступные курсы{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
<div class="col">
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">
Доступные курсы
</h1>
</div>
</div>
</div>
<div class="wrapper-md">
{% for i in courses %}
<div class="col-lg-6">
<div class="panel b-a" style="overflow: hidden;">
{% if i.level == 'B' %}
<div class="panel-heading no-border bg-success">
<span class="text-lt ">{{ i.get_level_display }} уровень</span>
</div>
{% else %}
{% if i.level == 'A' %}
<div class="panel-heading no-border bg-warning">
<span class="text-lt ">{{ i.get_level_display }} уровень</span>
</div>
{% else %}
{% if i.level == 'E' %}
<div class="panel-heading no-border bg-danger">
<span class="text-lt ">{{ i.get_level_display }} уровень</span>
</div>
{% endif %}
{% endif %}
{% endif %}
<div class="item m-l-n-xxs m-r-n-xxs" style="height: 290px;background:url({{ i.get_image }}) no-repeat center center; background-size: cover;">
<div class="bottom wrapper bg-gd-dk text-white" style="width: 100%;">
{% if i.id|get_progress_persent:request.user.id != 0 %}
<div class="chart" data-percent="{{ i.id|get_progress_persent:request.user.id }}" data-scale-color="#fff"
style="text-align: center;">
<span id="canvas_length">{{ i.id|get_progress_persent:request.user.id }}%</span>
</div>
{% endif %}
<div class="text-u-c h3 m-b-none text-primary-lter">{{ i.title }}</div>
{{ i.lessons_length }} урока(-ов)
<div style="color: #fff;margin-bottom: 5px;">
{% for skill in i.get_skills %}
<span class="label font-normal text-white" style="background: {{ skill.skill.color }}">{{ skill.skill }}</span>
{% endfor %}
</div>
</div>
<div class="tags l-h-2x">
{% for n in i.skills %}
<span class="label font-normal text-white" style="background: {{ i.background }}">{{ i.skill }}</span>
{% endfor %}
</div>
</div>
<div class="hbox text-center text-sm">
<a href="/courses/{{ i.id }}" class="col-md-8 col-xs-8 bg-warning padder-v b-light" style="width: 100%;">
<i class="icon-rocket block m-b-xs fa-2x text-black"></i>
<span class="text-black">Приступить</span>
</a>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
<div class="col w-md bg-white-only b-l bg-auto no-border-xs aside-col">
{% if request.user.is_authenticated %}
{% if actions %}
<div class="padder-md">
<!-- streamline -->
<div class="m-b m-t text-md" style="margin-bottom: 0;">Последняя активность<p style="margin-bottom: 10px;"><a href="/access/all_actions/" style=" font-size: 12px;
color: blue;
border-bottom: 1px dotted">ВСЯ ИСТОРИЯ</a></p></div>
<div class="streamline b-l m-b">
{% for i in actions %}
<div class="sl-item {{ i.get_a_type_display }} b-l">
<div class="m-l">
<div class="text-muted label-small">{{ i.date }}<br>{{ i.place }}</div>
<p>{{ i.text|safe }}</p>
</div>
</div>
{% endfor %}
</div>
<!-- / streamline -->
</div>
{% endif %}
{% endif %}
<!--
<div class="panel-body">
<div class="m-b m-t text-md" style="margin-top: 0;">Новости Школы</div>
<div id="news_block"></div>
</div>
-->
<!-- aside right -->
<div class="app-aside-right pos-fix no-padder w-md w-auto-xs bg-white b-l animated fadeInRight hide">
<div class="vbox">
<div class="wrapper b-b b-t b-light m-b">
<a href class="pull-right text-muted text-md" ui-toggle-class="show" target=".app-aside-right"><i class="icon-close"></i></a>
Chat
</div>
<div class="row-row">
<div class="cell">
<div class="cell-inner padder">
<!-- chat list -->
<div class="m-b">
<a href class="pull-left thumb-xs avatar"><img src="/static/img/a2.jpg" alt="..."></a>
<div class="clear">
<div class="pos-rlt wrapper-sm b b-light r m-l-sm">
<span class="arrow left pull-up"></span>
<p class="m-b-none">Hi John, What's up...</p>
</div>
<small class="text-muted m-l-sm"><i class="fa fa-ok text-success"></i> 2 minutes ago</small>
</div>
</div>
<div class="m-b">
<a href class="pull-right thumb-xs avatar"><img src="/static/img/a3.jpg" class="img-circle" alt="..."></a>
<div class="clear">
<div class="pos-rlt wrapper-sm bg-light r m-r-sm">
<span class="arrow right pull-up arrow-light"></span>
<p class="m-b-none">Lorem ipsum dolor :)</p>
</div>
<small class="text-muted">1 minutes ago</small>
</div>
</div>
<div class="m-b">
<a href class="pull-left thumb-xs avatar"><img src="/static/img/a2.jpg" alt="..."></a>
<div class="clear">
<div class="pos-rlt wrapper-sm b b-light r m-l-sm">
<span class="arrow left pull-up"></span>
<p class="m-b-none">Great!</p>
</div>
<small class="text-muted m-l-sm"><i class="fa fa-ok text-success"></i>Just Now</small>
</div>
</div>
<!-- / chat list -->
</div>
</div>
</div>
<div class="wrapper m-t b-t b-light">
<form class="m-b-none">
<div class="input-group">
<input type="text" class="form-control" placeholder="Say something">
<span class="input-group-btn">
<button class="btn btn-default" type="button">SEND</button>
</span>
</div>
</form>
</div>
</div>
</div>
<!-- / aside right -->
</div>
{% endblock %}
{% block js %}
<script type="text/javascript" src='/static/js/index.js'></script>
<script>
$(function() {
$('.chart').easyPieChart({
rotate: 0,
lineWidth: 57,
trackColor: 'rgba(255,255,255,0)',
barColor: 'rgba(35,183,229,0.7)',
size: 120,
lineCap: 'butt',
animate: 1000,
scaleLength: 0
});
});
</script>
{% endblock %}

@ -1,336 +0,0 @@
{% extends 'base_index.html' %}
{% block head %}
<script src="/static/js/ckeditor/ckeditor.js"></script>
<script src="/static/js/ckeditor/adapters/jquery.js"></script>
{% endblock %}
{% block title %}{{ course.head.title }} / Домашнее задание{% endblock %}
<!-- content -->
{% block content %}
{% if homework.heaad.status == 'T' %}
<script>
$('[name=big_info_block]').html('Ваше задание проверяется преподавателем').fadeIn('fast')
</script>
{% endif %}
<!-- main -->
<div class="col">
<!-- main header -->
<div style="background:url({{ course.head.big_img }}) top right; background-size:cover">
<div class="visible-sm visible-xs" style="background-color: rgba(0, 0, 0, 0.5);">
<div class="wrapper-lg">
<div class="row m-t">
<div class="col-sm-7">
<div class="clear m-b">
<div class="panel-heading no-border" style="background: {{ course.level.background }};color:{{ course.level.color }};">
<span class="text-lt ">{{ course.level.title }} уровень</span>
</div>
<div class="m-b m-t-sm">
<span class="h1 text-warning text-u-c" style="font-weight: bold;">
{{ course.head.title }}
</span>
</div>
<div style="color: #fff;margin-bottom: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for skill in course.head.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
<div style="color: #fff;">
{{ course.head.lessons }} урока(-ов)
</div>
</div>
</div>
<div class="col-sm-5" style="text-align: center;">
{% if course.head.progress != 0 %}
<div class="chart" data-percent="{{ course.head.progress }}" data-scale-color="#fff"
style="text-align: center;color: #fff;">
<span id="canvas_length">{{ course.head.progress }}%</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="hidden-sm hidden-xs wrapper-lg">
<div class="row m-t">
<div class="col-sm-7">
<div class="clear m-b">
<div class="panel-heading no-border" style="background: {{ course.level.background }};color:{{ course.level.color }};">
<span class="text-lt ">{{ course.level.title }} уровень</span>
</div>
<div class="m-b m-t-sm">
<span class="h1 text-warning text-u-c" style="font-weight: bold;">
{{ course.head.title }}
</span>
</div>
<div style="color: #fff;margin-bottom: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for skill in course.head.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
<div style="color: #fff;">
{{ course.head.lessons }} урока(-ов)
</div>
</div>
</div>
<div class="col-sm-5" style="text-align: center;">
{% if course.head.progress != 0 %}
<div class="chart" data-percent="{{ course.head.progress }}" data-scale-color="#fff"
style="text-align: center;color: #fff;">
<span id="canvas_length">{{ course.head.progress }}%</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="wrapper bg-white b-b">
<ul class="nav nav-pills nav-sm">
<li>
<a type="button" style="width: 100%;" class="col-lg-10 btn btn-default dropdown-toggle" href="/courses/{{ course.head.course_id }}">
<i class="glyphicon glyphicon-chevron-left"></i> &nbsp;Страница курса
</a>
</li>
<!-- Кнопка нового урока -->
<li name="next_button">
<a type="button" href="{{ homework.next.button.link }}{{ homework.next.obj.id }}" style="background: {{ homework.next.button.background }}; color: {{ homework.next.button.color }}"
by_type="{{ homework.next.button.by_type }}"
self_id="{{ homework.next.obj.id }}"
course_id="{{ homework.next.obj.course.id }}">
{{ homework.next.button.title }} <i class="glyphicon glyphicon-chevron-right"></i>
</a>
</li>
<!-- Статус -->
<li style="float: right; padding: 6px 12px;">
<span style="padding: 6px 12px;font-weight: bold;">
<span class="label font-normal text-white bg-{{ homework.head.status.color }}" style="margin-left: 10px;font-size: 19px;{{ homework.head.status.styles }}">{{ homework.head.status.title }}<i class="{{ homework.head.status.icon }}" style="margin-right: 5px; margin-left: 10px; top: 3px;"></i></span>
</span>
</li>
</ul>
</div>
<div class="wrapper-md">
<div class="row m-l-xs">
<div class="panel col-lg-12 p-r-none">
<div class="wrapper-lg">
<h2 class="m-t-none text-black">Описание задания</h2>
<div>
{{ homework.head.description|safe }}
</div>
</div>
</div>
<div class="col-lg-12 pl-fix p-r-none">
<div class="col-lg-12 p-l-none p-r-none">
{% if homework.materials %}
<div class="col-sm-12">
<div draggable="true" class="panel panel-info">
<div class="panel-heading">
Материалы к заданию
</div>
{% for i in homework.materials %}
<div class="list-group bg-white">
{% if i.format == 'I' %}
<a href="{{ i.url }}" class="list-group-item" target="_blank" id="single_image">
{% else %}
<a href="{{ i.url }}" class="list-group-item" target="_blank">
{% endif %}
{% if i.icon_type != 'class' %}
<img src="{{ i.icon }}">
{% else %}
<i class="{{ i.icon }} text-lg inline text-primary"></i>
{% endif %}
<span class="clear inline">
<span>{{ i.title }}</span>
<small class="text-muted clear text-ellipsis">{{ i.name }}</small>
</span>
</a>
</div>
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div class="row">
<a name="comment_list_place"></a>
{% if homework.tries %}
<h3 style="margin-bottom: 25px;margin-left: 20px;font-weight: bold;border-bottom: 1px dotted #ccc;padding-bottom: 5px;"><i class="glyphicon glyphicon-briefcase"></i>&nbsp;Попыток: (<span name="comments_length">{{ homework.tries|length }}</span>)
{% if homework.head.status.flag == 'T' or homework.head.status.flag == 'A' %}
{% if homework.head.delay.status %}
<span style="font-size: 15px;
font-weight: normal;
"><i class="glyphicon glyphicon-info-sign" style="color: red"></i> Могут быть незначительные задержки с проверкой{% if homework.head.delay.description %}: <b>"{{ homework.head.delay.description|safe }}"</b>{% endif %}</span>
{% endif %}
{% endif %}
</h3>
{% endif %}
<div class="col-lg-12" name="homework_comments_block">
{% if homework.tries %}
{% for try in homework.tries %}
<div class="m-b b-l m-l-md streamline" name="try_comments_{{ try.id }}" homework_id="{{ homework.head.mid }}">
<div name="try_{{ try.id }}">
<span class="pull-left thumb-sm avatar m-l-n-md">
<img src="/static/img/mini_logo.png" class="img-circle"></span>
<div class="m-l-lg panel b-a" style="background:#CCFFFF;">
<div class="panel-heading pos-rlt b-b b-light">
<span class="arrow left" style="display: none;"></span>
<b>LMS: ~# </b>
<span class="arrow left" style="border-right-color:#CCFFFF;"></span>
<span style="font-size: 16px;color: #666;font-weight: bold;">Попытка №{{ forloop.counter }}</span>
<script>window.last_try = {{ forloop.counter }}</script>
<span class="text-muted m-l-sm pull-right" style="margin-top: -6px;">
<span class="label font-normal text-white bg-success" style="margin-left: 10px;text-shadow: 0 0 0;font-size: 16px">
<span class="hidden-xs hidden-sm">{{ try.teacher.get_full_name }}</span>
<span class="hidden-md hidden-lg">{{ try.teacher.get_short_name }}</span>
<span class="thumb-sm avatar" style="margin-left: 10px;top: -3px;position: relative;">
<img src="{{ try.teacher.get_image_url }}" class="img-circle">
</span>
</span>
<span class="label font-normal text-white bg-{{ try.status.color }}" style="margin-left: 10px;font-size: 19px;font-weight: bold;{{ try.status.styles }}">
<span class="hidden-sm hidden-xs hidden-md">{{ try.status.title }}</span><i class="{{ try.status.icon }}" style="top: 3px; margin: 0 15px;"></i>
</span>
</span>
</div>
</div>
<!-- -->
</div>
{% for comment in try.comments %}
<a href="comment{{ comment.id }}"></a>
<div name="comment_{{ comment.id }}">
<span class="pull-left thumb-sm avatar m-l-n-md">
<img src="{{ comment.owner_avatar }}" class="img-circle"></span>
<div class="m-l-lg panel b-a" style="background: {% if comment.owner_type.flag == 'T' %}#f5fce5{% endif %}">
<div class="panel-heading pos-rlt b-b b-light">
<span class="arrow left" style="display: none;"></span>
<b style="margin-right: 5px;">{{ comment.owner }}</b>
<span class="arrow left" style="border-right-color: {% if comment.owner_type.flag == 'T' %}#f5fce5{% endif %}"></span>
<label class="label {{ comment.owner_type.background }} m-l-xs">{{ comment.owner_type.title }}</label>
<span class="text-muted m-l-sm pull-right">{{ comment.date }}</span>
</div>
<div class="panel-body" readable_comment="{{ comment.id }}">
<div class="m-b-xs">{{ comment.text|safe }}</div>
{% for file in comment.files %}
<div name="message_files" message_id="{{ comment.id }}">
<div class="panel m-b-none" style="box-shadow: none; border: 1px solid rgba(0, 0, 0, 0.05); padding: 4px; margin-bottom: 3px !important;">
<a href="{{ file.url }}" target="{% if file.format == 'F' %}_blank{% endif %}" id="">
<i class="{{ file.icon }} text-primary"></i> &nbsp;{{ file.name }}
</a>
</div>
</div>
{% endfor %}
</div>
</div>
<!-- -->
</div>
{% endfor %}
</div>
{% endfor %}
{% endif %}
{% if request.user.is_authenticated %}
{% if homework.head.status.flag != 'N' and homework.head.status.flag != 'F' %}
<div class="progress" name="sent_comment_progress" style="height: 40px;display: none;">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%; font-weight: bold; font-size: 15px;padding: 10px;">
Отправка комментария
</div>
</div>
<a name="comment_send_form_place"></a>
<form name="comment_send_form" onsubmit="return false" method="POST">
<h3 style="margin-bottom: 10px;
margin-left: 40px;border-top: 1px dotted #ccc;padding-top: 10px;">Оставить сообщение&nbsp; <i class="glyphicon glyphicon-bullhorn"></i><span name="reply_info"></span>: </h3>
<div style="background: #ccc;
padding: 10px;
margin-left: 15px;
border-radius: 20px 20px 0 0;
text-align: center;">
{% if request.user.is_authenticated and resuqest.user.in_role == 'Ts' or request.user.in_role == 'A' %}
<i class="glyphicon glyphicon-wrench" style=" font-size: 40px;
float: left;
padding-right: 20px;"></i>
<span class="btn btn-default btn-lg" onclick="CKEDITOR.instances.homework_text.setData('TEXT');send_comment('comment_send_form', 'form_file_load')">Просто отправить</span>
<span class="btn btn-success btn-lg" onclick="CKEDITOR.instances.homework_text.setData('GO_TO_SUCCESS');send_comment('comment_send_form', 'form_file_load')">Заставить одобрить</span>
<span class="btn btn-danger btn-lg" onclick="CKEDITOR.instances.homework_text.setData('GO_TO_FAIL');send_comment('comment_send_form', 'form_file_load')">Заставить отказать</span>
{% endif %}
</div>
<div class="clearfix" style="margin-bottom:10px;">
<div class="form-group">
<div class="col-sm-12 p-r-none">
<input type="text" name="homework_id" readonly value="{{ homework.head.id }}" style="display: none;">
<textarea style="overflow:scroll;height:200px;max-height:200px;width: 100%;border-radius:3px;font-weight: bold;padding: 15px 20px;" name="homework_text" class="form-control"></textarea>
</div>
</div>
</div>
<div class="form-group">
<div class="col-xs-12 col-sm-12 col-md-9 p-r-none m-b-md" name="files_sketches">
</div>
<div class="col-xs-12 col-sm-12 col-md-3 p-r-none m-b-md">
<button class="btn btn-lg btn-info m-t-xs pull-right" style="min-width: 240px;width: 100%;border-radius: 3px;" onclick="send_comment('comment_send_form', 'form_file_load')">Отправить сообщение</button>
</div>
</div>
</form>
<form enctype='multipart/form-data'
action='/storage/upload_file/'
method='post'
name='load_file'
id="form_file_load_form"
target='hidden_frame'
class="load_file" style="text-align: right; clear: right; margin-bottom: 20px;">
<input type='hidden' name='MAX_FILE_SIZE' value='64000'>
<input id="form_file_load" name='file_load' type='file' data-icon="false" data-classbutton="btn btn-default" data-classinput="form-control inline v-middle input-s" tabindex="-1"
style="outline: 0;background: #ffc; padding: 5px 10px;border-radius: 5px;margin: auto;position: absolute; clip: rect(0px, 0px, 0px, 0px);" sketch_place="files_sketches">
<button class="btn btn-default" onclick="return false;" style="display: none;" name="form_file_load_progress">
<img src="/static/img/ui-anim_basic_16x16.gif">
</button>
<div class="bootstrap-filestyle input-group" name="form_file_load_button">
<span tabindex="0" class="group-span-filestyle input-group-btn" style="text-align: right;">
<label for="form_file_load" class="btn btn-default ">
<span><span class="glyphicon glyphicon-save-file"></span> Добавить файл</span>
</label>
</span>
</div>
<input type="text" name="clip_file_id" readonly value="0" style="display: none;">
</form>
{% endif %}
{% else %}
<p>Для работы с домашним заданием, авторизуйтесь.</p>
{% endif %}
</div>
</div>
</div>
</div>
<!-- / main header -->
<!-- / main -->
{% include 'right_site.html' %}
<input name="HOMEWORK_ID" value="{{ homework.id }}" style="display: none;">
{% endblock %}
<!-- / content -->
{% block js %}
<script type="text/javascript" src='/static/js/homework.js'></script>
<!--<script type="text/javascript" src='/static/js/video_reloader.js'></script>-->
<script>
$(function() {
$('.chart').easyPieChart({
rotate: 0,
lineWidth: 60,
trackColor: 'rgba(255,255,255,0)',
barColor: 'rgba(35,183,229,0.7)',
size: 120,
lineCap: 'butt',
animate: 1000,
scaleLength: 0
});
});
</script>
{% endblock %}

@ -1,140 +0,0 @@
{% extends 'base_index.html' %}
{% load static %}
{% block page_title %}Доступные курсы «{{ NAME }}»{% endblock %}
{% block title %}Доступные курсы «{{ NAME }}»{% endblock %}
{% block head %}
<script>
window.by = true;
$(document).on('change', '[name="by_radio"]', function(){
if (window.by){
$('.no_bought').fadeIn('slow');
window.by = false;
} else {
$('.no_bought').fadeOut('slow');
window.by = true;
}
});
</script>
{% if bought %}
<style>
.no_bought{
display: none;
}
</style>
{% endif %}
{% endblock %}
{% block content %}
<div class="col">
<div class="wrapper-md">
{% if bought %}
<div style=" font-size: 12px;
color: #666;
position: fixed;
right: 250px;
top: 10px;
z-index: 10000;" class="hidden-xs">
<span>Все курсы</span>
<label class="i-switch bg-success" style="top: 5px;
position: relative; margin: 0 5px;">
<input type="checkbox" checked="" name="by_radio">
<i></i>
</label><span>Мои курсы</span>
</div>
<div style=" font-size: 12px;
color: #fff;
position: absolute;
right: 100px;
top: 10px;
z-index: 13000;" class="visible-xs">
<span class="hidden-xs">Все курсы</span>
<label class="i-switch bg-success" style="top: 5px;
position: relative; margin: 0 5px;">
<input type="checkbox" checked="" name="by_radio">
<i></i>
</label><span class="hidden-xs">Мои курсы</span>
</div>
{% endif %}
{% for i in courses %}
<div class="col-lg-4 {% if i.by %}bought{% else %}no_bought{% endif %}">
{% comment %}
<a {% if i.by_flow or i.by_flow == None %}href="/courses/{{ i.slug }}"{% else %}class="flow" href="#" data-toggle="modal" data-target="#flowAccess"{% endif %}>
{% endcomment %}
<a href="/courses/{{ i.slug }}">
<div class="panel b-a course_cart " style="overflow: hidden;">
<div class="panel-heading no-border index" style="background: {{ i.level.background }};color:{{ i.level.color }};">
<span class="text-lt ">{{ i.level.title }}</span>
</div>
<div class="item m-l-n-xxs m-r-n-xxs" style="height: 290px;">
<div style="width: 100%;height: 195px;background:url({{ i.img }}) no-repeat top right;background-size: cover;"></div>
<div class="bottom wrapper bg-gd-dk text-white" style="width: 100%;padding: 0;">
<div style="color: #fff;margin-bottom: 10px;margin-left: 10px;">
{% for skill in i.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
<div style="background: #fff;padding: 15px;">
<div class="text-u-c h4 m-b-none" style="text-align: left;color: #666;">{{ i.title }}</div>
<p style="color: #999;border-bottom: 1px solid #f1f1f1;margin: 5px 0 10px;padding-bottom: 10px;">{{ i.lessons }} урока(-ов)</p>
<div style="margin: 5px 5px 0;">
{{ i.material.get_html_direction|safe }}
{% if i.progress == 100 %}
<span style=" font-weight: bold;
float: right;
color: green;"><i class="glyphicon glyphicon-ok" style="margin-right: 5px;"></i> Пройдено</span>
{% endif %}
{% if i.progress != 0 and i.progress < 100 %}
<span style=" font-weight: bold;
float: right;
color: #999;"> Пройдено: {{ i.progress }}%</span>
<div class="chart" data-percent="{{ i.progress }}" data-scale-color="#000" style="float: right;margin-right: 5px;">
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</a>
</div>
{% endfor %}
</div>
</div>
{% include 'right_site.html' %}
<!--
<div class="panel-body">
<div class="m-b m-t text-md" style="margin-top: 0;">Новости Школы</div>
<div id="news_block"></div>
</div>
-->
<!-- aside right -->
<!-- / aside right -->
{% endblock %}
{% block js %}
<script>
$(function() {
$('.chart').easyPieChart({
rotate: 0,
lineWidth: 10,
trackColor: 'rgb(222, 229, 231)',
barColor: 'rgb(96, 179, 111)',
size: 20,
lineCap: 'butt',
animate: 3000,
scaleLength: 0
});
});
</script>
{% endblock %}

@ -1,143 +0,0 @@
<ul class="nav" style=" padding: 20px 0;">
{% if request.user.in_role != 'S' and request.user.in_role != 'M' %}
{% if '/' == request.META.PATH_INFO or 'courses' in request.META.PATH_INFO %}
<li class="active" style="z-index: 1;">
{% else %}
<li style="z-index: 1;">
{% endif %}
<a href="/" class="auto">
<i class="glyphicon glyphicon-education"></i>
<span>Курсы</span>
</a>
</li>
{% if 'library/articles/' in request.META.PATH_INFO %}
<li class="active" style="z-index: 1;">
{% else %}
<li style="z-index: 1;">
{% endif %}
<a href="/library/articles/" class="auto">
<i class="glyphicon glyphicon-book"></i>
<span>База знаний</span>
</a>
</li>
{% endif %}
{% if not request.user.is_authenticated %}
<li style="z-index: 1;"><a type="button" onclick="$('#myModal1').modal('show')">
<i class="icon-user icon"></i>
<span>Профиль</span></a></li>
{% else %}
{% if request.user.in_role == 'S' or request.user.in_role == 'M' %}
{% if request.user.in_role == 'S' %}
<li style="z-index: 1;">
<a href="/management/super_profile/">
<i class="icon-user icon"></i>
<span>Поиск</span>
</a>
</li>
<li style="z-index: 1;">
<a href="/management/super_bill">
<i class="glyphicon glyphicon-stats"></i>
<span>Счета</span>
</a>
</li>
<li style="z-index: 1;">
<a href="/management/faq/35" target="_blank">
<i class="glyphicon glyphicon-file"></i>
<span style="font-weight: bold;">Как работать?</span>
</a>
</li>
{% else %}
<li style="z-index: 1;">
<a href="/management/profile/">
<i class="icon-user icon"></i>
<span>Поиск</span>
</a>
</li>
<li style="z-index: 1;">
<a href="/management/history">
<i class="glyphicon glyphicon-stats"></i>
<span>История</span>
</a>
</li>
<li style="z-index: 1;">
<a href="/management/faq/34" target="_blank">
<i class="glyphicon glyphicon-file"></i>
<span style="font-weight: bold;">Как работать?</span>
</a>
</li>
{% endif %}
{% else %}
{% if '/access/profile' in request.META.PATH_INFO %}
<li class="active" style="z-index: 1;">
{% else %}
<li style="z-index: 1;">
{% endif %}
<a href="{% if request.user.is_admin %}/{{ request.user.interactive_key }}{% else %}/access/profile/{% endif %}"><i class="icon-user icon"></i>
<span>Профиль</span>
</a>
</li>
{% endif %}
{% if request.user.in_role == 'T' %}
<li style="z-index: 1;">
<a href="/reports/">
<i class="glyphicon glyphicon-list-alt"></i>
<span>Отчеты</span>
</a>
</li>
{% endif %}
{% if request.user.is_admin %}
<li style="margin-top: 20px;">
<a href="/access/profile/">
<i class="glyphicon glyphicon-cloud"></i>
<span>Админка</span>
</a>
</li>
<li style="z-index: 1;">
<a href="/reports/">
<i class="glyphicon glyphicon-list-alt"></i>
<span>Отчеты</span>
</a>
</li>
<li style="z-index: 1;">
<a href="/analytics/">
<i class="glyphicon glyphicon-list-alt"></i>
<span>Аналитика</span>
</a>
</li>
{% endif %}
<!--
<div style="text-align: center; width:200px;">
<img src="/static/img/9.png" style="width: 180px;">
</div>
-->
{% endif %}
<div style="position: fixed;bottom: 0;left: 0;" class="hidden-xs">
<ul class="nav" style="margin-bottom: 20px;">
<li style="width: 200px;">
<a href="/contacts/" class="btn" role="button">
<span><i class="glyphicon glyphicon-tree-deciduous" style="margin-right: 10px;"></i>Контакты</span>
</a>
</li>
<li style="width: 200px;">
<a href="{{ DOMAIN }}/management/faq" style="background: #ebebeb;" class="btn" role="button">Помощь</a>
</li>
</ul>
<p style=" text-align: center;">
<i style="font-size: 8px;" class="glyphicon glyphicon-copyright-mark"></i>&nbsp;<span style="font-size: 8px;">&#0171{{ NAME }}&#0187 {% now "Y" %} </span><br>
<a href="/static/oferta.pdf" target="_blank">Договор оферты</a>
</p>
</div>
<!--<a href="#" onclick="$('#FeedBack').modal('show');" style=" position: fixed;
bottom: 10px;" class="visible-lg visible-md visible-sm">
<img src="/static/img/1447222756_information_support.svg" style=" width: 30px;
margin: 0 10px;">Есть вопросы?
</a>-->
</ul>

@ -1,248 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}{{ course.head.title }} / {{ lesson.head.title }}{% endblock %}
<!-- content -->
{% block content %}
<!-- main -->
<div class="col">
<!-- Голова -->
<div style="background:url({{ course.head.big_img }}) top right; background-size:cover">
<div class="visible-sm visible-xs" style="background-color: rgba(0, 0, 0, 0.5);">
<div class="wrapper-lg" style="padding: 0 20px;">
<div class="row m-t" style="margin-top: 0;padding-top: 20px; padding-bottom: 20px;">
<div class="col-sm-7">
<div class="clear m-b">
<div class="m-b m-t-sm">
<span class="h1 text-warning text-u-c" style="font-weight: bold;">
{{ course.head.title }}
</span>
</div>
<div style="color: #fff;margin-bottom: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for skill in course.head.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
<div style="color: #fff;">
{{ course.head.lessons }} урока(-ов)
</div>
</div>
</div>
<div class="col-sm-5" style="text-align: center;">
{% if course.head.progress != 0 %}
<div class="chart" data-percent="{{ course.head.progress }}" data-scale-color="#fff"
style="text-align: center;color: #fff;">
<span id="canvas_length">{{ course.head.progress }}%</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<div class="wrapper-lg hidden-xs hidden-sm" style="padding: 0 20px;">
<div class="row m-t" style="margin-top: 0;padding-top: 20px; padding-bottom: 20px;">
<div class="col-sm-7">
<div class="clear m-b">
<div class="m-b m-t-sm">
<span class="h1 text-warning text-u-c" style="font-weight: bold;">
{{ course.head.title }}
</span>
</div>
<div style="color: #fff;margin-bottom: 5px;">
<b style="margin-right: 5px;">Приобретаемые навыки:</b>
{% for skill in course.head.skills %}
<span class="label font-normal text-white" style="background: {{ skill.color }}">{% if skill.mini_icon %}<img src="{{ skill.mini_icon.url }}" style="margin-top: -1px;width: 10px;
height: 10px;
margin-right: 5px;">{% endif %}{{ skill }}</span>
{% endfor %}
</div>
<div style="color: #fff;">
{{ course.head.lessons }} урока(-ов)
</div>
</div>
</div>
<div class="col-sm-5" style="text-align: center;">
{% if course.head.progress != 0 %}
<div class="chart" data-percent="{{ course.head.progress }}" data-scale-color="#fff"
style="text-align: center;color: #fff;">
<span id="canvas_length">{{ course.head.progress }}%</span>
</div>
{% endif %}
</div>
</div>
</div>
</div>
<!-- Кнопки материала -->
<div class="wrapper bg-white b-b">
<ul class="nav nav-pills nav-sm">
<li>
<a type="button" style="width: 100%;" class="col-lg-10 btn btn-default dropdown-toggle" href="/courses/{{ course.head.course_id }}">
<i class="glyphicon glyphicon-chevron-left"></i> &nbsp;Страница курса
</a>
</li>
<!-- Кнопка нового урока -->
<li name="next_button" {% if lesson.head.status.flag != 'F' %}style="display: none;"{% endif %}>
<a type="button" href="{{ lesson.next.button.link }}{{ lesson.next.obj.id }}" style="background: {{ lesson.next.button.background }}; color: {{ lesson.next.button.color }}"
by_type="{{ lesson.next.button.by_type }}"
self_id="{{ lesson.next.obj.id }}"
course_id="{{ lesson.next.obj.course.id }}">
{{ lesson.next.button.title }} <i class="glyphicon glyphicon-chevron-right"></i>
</a>
</li>
<!-- Статус -->
<li style="float: right; padding: 6px 12px;">
<span style="padding: 6px 12px;font-weight: bold;">
<span class="label font-normal text-white bg-{{ lesson.head.status.color }}" style="margin-left: 10px;font-size: 19px;{{ lesson.head.status.styles }}">{{ lesson.head.status.title }}<i class="{{ lesson.head.status.icon }}" style="margin-right: 5px; margin-left: 10px; top: 3px;"></i></span>
</span>
</li>
</ul>
</div>
<div class="tab-content">
<div class="wrapper-md tab-pane active" role="tabpanel" id="lesson">
<div class="row">
<div style="clear: both;" class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="panel-heading bg-primary" style="text-align: center;max-width: 1500px;margin: 0 auto;">
<span class="text-lt">Видео к занятию: {{ lesson.head.title }}</span>
</div>
<div class="panel b-a" style="max-width: 1500px;margin: auto;border: 0">
<div style="padding: 0;clear: both;{% if lesson.head.status.flag == 'F' %}display: none;{% endif %}" name="current_button" class="panel-heading no-border">
<button type="button" class="btn btn-success" onclick="read_lesson({{ lesson.head.mid }})" style="width: 100%; font-weight: bold; font-size: 22px; height: 70px">
<i class="glyphicon glyphicon-ok"></i> &nbsp;Пометить как просмотренное
</button>
</div>
<div style="padding: 0;{% if lesson.head.status.flag != 'F' %}display: none;{% endif %}" name="next_button" class="panel-heading no-border">
<a type="button" href="{{ lesson.next.button.link }}{{ lesson.next.obj.id }}">
<button class="btn" style="width: 100%; font-weight: bold; font-size: 22px;height: 70px;background: {{ lesson.next.button.background }}; color: {{ lesson.next.button.color }}"
by_type="{{ lesson.next.button.by_type }}"
self_id="{{ lesson.next.obj.id }}"
course_id="{{ lesson.next.obj.course.id }}">
{{ lesson.next.button.title }}
</button>
</a>
</div>
<div class="item m-l-n-xxs m-r-n-xxs embed-responsive embed-responsive-16by9" name="video_frame">
{{ lesson.video|safe }}
</div>
<div style="padding: 0;clear: both;{% if lesson.head.status.flag == 'F' %}display: none;{% endif %}" name="current_button" class="col-md-12 col-sm-12 col-xs-12">
<button type="button" class="btn btn-success" onclick="read_lesson({{ lesson.head.mid }})" style="width: 100%; font-weight: bold; font-size: 22px; height: 70px">
<i class="glyphicon glyphicon-ok"></i> &nbsp;Пометить как просмотренное
</button>
</div>
<div style="padding: 0;{% if lesson.head.status.flag != 'F' %}display: none;{% endif %}" name="next_button" class="col-md-12 col-sm-12 col-xs-12">
<a type="button" href="{{ lesson.next.button.link }}{{ lesson.next.obj.id }}">
<button class="btn" style="width: 100%; font-weight: bold; font-size: 22px;height: 70px;background: {{ lesson.next.button.background }}; color: {{ lesson.next.button.color }}"
by_type="{{ lesson.next.button.by_type }}"
self_id="{{ lesson.next.obj.id }}"
course_id="{{ lesson.next.obj.course.id }}">
{{ lesson.next.button.title }}
</button>
</a>
</div>
</div>
</div>
{% if lesson.description %}
<div class="{% if lesson.materials.all %}col-lg-6 {% else %}col-lg-12 {% endif %}col-md-12 col-sm-12 col-xs-12" style="margin-top: 20px;">
<div class="panel panel-info">
<div class="panel-heading">
<h2 class="m-t-none text-black" style="margin-bottom: 5px;">Описание урока</h2>
</div>
<div class="wrapper-lg">
<div>
{{ lesson.description|safe }}
</div>
</div>
</div>
</div>
{% endif %}
{% if lesson.materials %}
<div class="col-lg-6 col-md-12 col-sm-12 col-xs-12" style="margin-top: 20px;">
<div draggable="true" class="panel panel-info">
<div class="panel-heading">
Материалы к уроку
</div>
{% for i in lesson.materials %}
<div class="list-group bg-white">
{% if i.format == 'I' %}
<a href="{{ i.url }}" class="list-group-item" target="_blank" id="single_image">
{% else %}
<a href="{{ i.url }}" class="list-group-item" target="_blank">
{% endif %}
{% if i.icon_type != 'class' %}
<img src="{{ i.icon }}">
{% else %}
<i class="{{ i.icon }} text-lg inline text-primary"></i>
{% endif %}
<span class="clear inline">
<span>{{ i.title }}</span>
<small class="text-muted clear text-ellipsis">{{ i.name }}</small>
</span>
</a>
</div>
{% endfor %}
</div>
</div>
{% endif %}
</div>
{% if lesson.head.on_comment %}
<span name="old_comments_show" style="color: #ccc;
border-bottom: 1px dotted #ccc; display: none;
cursor: pointer;" onclick="$(this).fadeOut('fast', function(){$('[name=old_comments]').fadeIn()})">Показать старые комментарии</span>
<div class="row" name="old_comments" style="display: none; margin-top: 20px;">
<!-- Старые комментарии -->
<a name="comment_list_place"></a>
<div class="col-lg-12">
<div class="m-b b-l m-l-md streamline" name="lesson_comments_block" lesson_id="{{ lesson.head.mid }}">
</div>
</div>
</div>
<!---->
{% include 'comments_block.html' %}
{% endif %}
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
{% include 'right_site.html' %}
<input name="LESSON_ID" value="{{ lesson.head.mid }}" style="display: none;">
{% endblock %}
<!-- / content -->
{% block js %}
<script type="text/javascript" src='/static/js/lesson.js'></script>
<!--<script type="text/javascript" src='/static/js/video_reloader.js'></script>-->
{% if 'to_comment' in request.GET %}
<script>
$(function () {
setTimeout(function() {
$('html,body').stop().animate({ scrollTop: $('div[name=comment_{{ request.GET.to_comment }}]').offset().top }, 1000);
$('div[name=comment_{{ request.GET.to_comment }}]').css('background', 'red');
}, 4000);
})
</script>
{% endif %}
<script>
$(function() {
$('.chart').easyPieChart({
rotate: 0,
lineWidth: 60,
trackColor: 'rgba(255,255,255,0)',
barColor: 'rgba(35,183,229,0.7)',
size: 120,
lineCap: 'butt',
animate: 1000,
scaleLength: 0
});
});
</script>
{% endblock %}

@ -1,14 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<table>
{% block content %}{% endblock %}
<tr><td style='padding-bottom: 20px;'>С уважением,<Br>Точка кода</td></tr>
<tr><td style='padding-bottom: 20px;'><img src='{{ DOMAIN }}static/img/logo.png'></td></tr>
</table>
</body>
</html>

@ -1,50 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<table width=100%>
<tr><td>
Здравствуйте! <Br><br>
Рады сообщить, что сегодня начинается ваше обучение на курсе «Профессия PR-менеджер» и перевели курс на новую платформу обучения — http://go.skillbox.ru/<br><br>
Важно!Для корректной регистрации вам необходимо в поле e-mail указать тот адрес, на который вы сейчас получили это письмо. В противном случае доступ вам не откроется.<br><br>
Для входа на обучающую платформу - вам необходимо пройти процесс активации в системе. Для этого перейдите по ссылке ниже:<br>
<a href="{{ LINK }}">{{ LINK }}</a><br><br>
Как работать в системе. Краткая инструкция.<br><br>
Просмотр уроков<br><br>
• С главной страницы (http://go.skillbox.ru/) перейдите в раздел с вашим курсом, кликнув по иконке курса «Профессия PR-менеджер».<br>
• Вы попадёте на страницу с перечнем тем (модулей) и уроков которые вам сейчас доступны<br>
• Первая тема курса уже доступна для просмотра. Нажимайте на кнопку «Перейти к уроку», и приступайте к просмотру видеоурока.<br><br>
Отправка домашних заданий<br>
• Просматриваете уроки, отмечаете их «просмотренными» (большая зеленая кнопка над и под видео)<br>
• После того как отметите последний урок в теме, — появиться активная ссылка на переход в раздел с домашним заданием<br>
• В разделе с ДЗ описано задание и прикреплены файлы для выполнения работы<br>
• Ниже на странице с заданием есть форма обратной связи, через неё необходимо направлять задание на проверку. Также через неё можно общаться с преподавателем, задавать вопросы, связанными с выполнением работы или вопросы по просмотренному материалу.<br><br>
Дополнительно<br>
• После того как преподаватель даст комментарий по работе, вам на почту придет об этом письмо, а так же отобразиться в новостной ленте справа.<br>
• Если задание отправлено на доработку, то вам необходимо исправленный проект направить через эту же форму повторно.<br>
• перейти в раздел с работой, что бы посмотреть комментарий вы можете из системы, просто нажав на «домашнее задание» под темой которую изучаете или из письма по ссылке.<br><br>
Общаться со студентами вы теперь можете в комментариях под каждым видео.<br>
Делитесь мнениями и идеями :slightly_smiling_face:<br><br>
По всем вопросам, связанным с курсом смело обращайтесь на почту info@ucandesign.ru<br>
Для вашего удобства в системе есть раздел «Помощь» с часто задаваемыми вопросами http://go.skillbox.ru/management/faq
</td>
</tr>
<tr><td style="padding-bottom: 20px;">С уважением,<Br>SkillBox</td></tr>
<tr><td style="padding-bottom: 20px;"><img src="http://go.skillbox.ru/static/img/logo.png"></td></tr>
<tr><td>Пожалуйста, по любым вопросам смело пишите на support@skillbox.ru</td></tr>
</table>
</body>
</html>

@ -1,279 +0,0 @@
<!DOCTYPE html>
<!-- saved from url=(0039)file:///home/bigboy/Downloads/form.html -->
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="HandheldFriendly" content="true">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--[if gte IE 7]><html class="ie8plus" xmlns="http://www.w3.org/1999/xhtml"><![endif]-->
<!--[if IEMobile]><html class="ie8plus" xmlns="http://www.w3.org/1999/xhtml"><![endif]-->
<meta name="format-detection" content="telephone=no">
<meta name="generator" content="EDMdesigner, www.edmdesigner.com">
<title>asd</title>
<style type="text/css" media="screen">
* {line-height: inherit;}
.ExternalClass * { line-height: 100%; }
body, p{padding:0;
margin: 0;
-webkit-text-size-adjust:none; -ms-text-size-adjust:none;} img{line-height:100%; outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;} a img{border: none;} #backgroundTable {margin:0; padding:0; width:100% !important; } a, a:link, .no-detect-local a, .appleLinks a{color:#5555ff !important; text-decoration: underline;} .ExternalClass {display: block !important; width:100%;} .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: inherit; } table td {border-collapse:collapse;mso-table-lspace: 0pt; mso-table-rspace: 0pt;} sup{position: relative; top: 4px; line-height:7px !important;font-size:11px !important;} .mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {text-decoration: default; color: #5555ff !important; pointer-events: auto; cursor: default;} .no-detect a{text-decoration: none; color: #5555ff; pointer-events: auto; cursor: default;} {color: #5555ff;} span {color: inherit; border-bottom: none;} span:hover { background-color: transparent; }
.nounderline {text-decoration: none !important;}
h1, h2, h3 { margin:0; padding:0; }
p {Margin: 0px !important; }
table[class="email-root-wrapper"] { width: 600px !important; }
body {
background: #22b1ff url('{{ DOMAIN }}/static/img/mails/536.jpg') no-repeat center bottom;
}
body { min-width: 280px; width: 100%;}
</style>
<style>
@media only screen and (min-width: 600px) {
}
@media only screen and (max-width: 599px),
only screen and (max-device-width: 599px),
only screen and (max-width: 400px),
only screen and (max-device-width: 400px) {
.email-root-wrapper { width: 100% !important; }
table[class="email-root-wrapper"] { width: 100% !important; }
td[class="wrap"] .full-width { width: 100% !important; height: auto !important;}
td[class="wrap"] .fullwidthhalfleft {width:100% !important;}
td[class="wrap"] .fullwidthhalfright {width:100% !important;}
td[class="wrap"] .fullwidthhalfinner {width:100% !important; margin: 0 auto !important; float: none !important;
clear:both !important; }
td[class="wrap"] .hide { display:none !important; width:0;height:0; overflow:hidden; }
}
@media yahoo{
table {float: none !important;height:auto; }
table[align="left"] {float:left !important; }
td[align="left"] {float:left !important;height:auto; }
table[align="center"] {margin:0 auto; }
td[align="center"] {margin:0 auto;height:auto; }
table[align="right"] {float:right !important; }
td[align="right"] {float:right !important;height:auto; }
}
</style>
<!--[if (gte IE 7) & (vml)]>
<style type="text/css">
html, body {margin:0 !important; padding:0px !important;}
img.full-width { position: relative !important; }
.img134x37 { width: 134px !important; height: 37px !important;}
.img287x74 { width: 287px !important; height: 74px !important;}
</style>
<![endif]-->
<!--[if gte mso 9]>
<style type="text/css">
table, td {
border-collapse: collapse !important;
mso-table-lspace: 0px !important;
mso-table-rspace: 0px !important;
}
.email-root-wrapper { width 600px !important;}
.imglink { font-size: 0px; }
.edm_button { font-size: 0px; }
</style>
<![endif]-->
<!--[if gte mso 15]>
<style type="text/css">
table {
font-size:0px;
mso-margin-top-alt:0px;
}
.fullwidthhalfleft {
width: 49% !important;
float:left !important;
}
.fullwidthhalfright {
width: 50% !important;
float:right !important;
}
</style>
<![endif]-->
<style type="text/css" media="(pointer) and (min-color-index:0)">
html, body {background-image: none !important; background-color: transparent !important; margin:0 !important; padding:0 !important;}
</style>
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" background="{{ DOMAIN }}/static/img/mails/536.jpg" bgcolor="#22b1ff" style="font-family:Arial, sans-serif; font-size:0px;margin:0;padding:0; background: #22b1ff url('{{ DOMAIN }}/static/img/mails/body_background.jpg') no-repeat center bottom !important;">
<!--[if t]><![endif]--><!--[if t]><![endif]--><!--[if t]><![endif]--><!--[if t]><![endif]--><!--[if t]><![endif]--><!--[if t]><![endif]-->
<table align="center" border="0" cellpadding="0" cellspacing="0" background="{{ DOMAIN }}/static/img/mails/536.jpg" style="background: transparent url('{{ DOMAIN }}/static/img/mails/body_background.jpg') no-repeat center bottom !important;" height="100%" width="100%" id="backgroundTable">
<tbody><tr>
<td class="wrap" align="center" valign="top" width="100%">
<center>
<!-- content -->
<div style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="600" align="center" class="email-root-wrapper" style="max-width: 600px; min-width: 240px; margin: 0 auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td align="center" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" align="center">
<tbody><tr><td valign="top" align="center" style="padding-top: 10px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="134" height="37" style="border: 0px none; height: auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><a href="http://skillbox.ru/" target="_blank" class="imglink"><img src="{{ DOMAIN }}/static/img/mails/727.png" width="134" height="37" alt="" border="0" class="img134x37" style="display: block;"></a></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="600" align="center" class="email-root-wrapper" style="max-width: 600px; min-width: 240px; margin: 0 auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#ffffff" style="border: 0px none; background-color: #ffffff;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 20px; padding-right: 30px; padding-bottom: 5px; padding-left: 30px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: Helvetica, Helvetica Neue, Arial; font-size: 14px; color: #000000; line-height: 14px; mso-line-height: exactly; vertical-align: middle;"><h1 style="font-family:Helvetica, Helvetica Neue, Arial; font-size: 20px; color: #000000; line-height: 32px; mso-line-height: exactly; vertical-align:middle;padding: 0; margin: 0;">{{ USER }}, вам выставлен счет для оплаты.</h1>
<p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">&nbsp;</p>
<p style="padding: 0; margin: 0;"><span style="color:#808080;">Состав заказа: </span>{{ SERVICE }}</p><p style="padding: 0; margin: 0;">&nbsp;</p>
<p style="padding: 0; margin: 0;"><span style="color:#808080;">Сумма для оплаты: </span>{{ PRICE }} руб.</p><p style="padding: 0; margin: 0;">&nbsp;</p>
<p style="padding: 0; margin: 0;">
<span style="color:#808080;">Ваш менеджер: </span> </p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
<p> {{ MANAGER }} </p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
<p>{{ MANAGER_EMAIL }}</p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
{% if FILE %} <a href="{{ FILE }}">Программа курса</a> {% endif %}
<p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">Чтобы выбрать способ оплаты и оплатить данный счет, воспользуйтесь ссылкой: <a href="{{ LINK }}" style="color: #22a8f2 !important; text-decoration: underline !important;" target="_blank"><font style=" color:#22a8f2;">{{ LINK }}</font></a></p><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">или кнопкой ниже</p><p style="padding: 0; margin: 0;">&nbsp;</p></div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td align="center" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" align="center" class="full-width">
<tbody><tr><td valign="top" align="center" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="287" height="74" class="full-width" style="border: 0px none; height: auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><a href="{{ LINK }}" target="_blank" class="imglink"><img src="{{ DOMAIN }}/static/img/mails/727_1.png" width="287" height="74" alt="Перейти к оплате" border="0" class="full-width img287x74" style="display: block; width: 100%; height: auto;"></a></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 40px; padding-right: 50px; padding-bottom: 5px; padding-left: 30px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: Helvetica, Helvetica Neue, Arial; font-size: 14px; color: #000000; line-height: 14px; mso-line-height: exactly; vertical-align: middle;"><h1 style="font-family:Helvetica, Helvetica Neue, Arial; font-size: 20px; color: #000000; line-height: 32px; mso-line-height: exactly; vertical-align:middle;padding: 0; margin: 0;"> </h1><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">Пожалуйста, по любым вопросам смело <span style="font-size:14px;"><strong>звоните по номеру 8 495 120-40-96 </strong><span style="color:#808080;">(с 10:00 до 19:00 по Москве)</span><strong> или пишите на <a style="color: #22b1ff !important; text-decoration: underline !important;" target="_blank"><font style=" color:#22b1ff;">support@skill-box.ru</font></a></strong></span></p><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">&nbsp;</p></div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style=""><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 10px; padding-right: 50px; padding-bottom: 32px; padding-left: 54px;"><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style=""><table cellpadding="0" cellspacing="0" border="0" width="100%" style="border-top: 2px solid #e8e8e8;">
<tbody><tr><td valign="top" style=""><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td style="padding: 0px;"></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 5px; padding-right: 5px; padding-bottom: 46px; padding-left: 5px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: arial; font-size: 14px; color: #000000; line-height: 18px; mso-line-height: exactly; vertical-align: middle;"><p style="padding: 0; margin: 0;text-align: center;">&nbsp;</p><p style="padding: 0; margin: 0;text-align: center;"><span style="font-size: 14px; font-family: tahoma; color: rgb(136, 136, 136);">с ♥, команда SkillBox</span></p><p style="padding: 0; margin: 0;text-align: center;"><span style="font-family:tahoma;"><a href="http://skillbox.ru/" target="_blank" style="color: #22a8f2 !important; text-decoration: underline !important;"><font style=" color:#22a8f2;">Перейти на наш сайт</font></a></span></p></div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%" style="border: 0px none; background: url('{{ DOMAIN }}/static/img/mails/522.png') no-repeat center;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 30px; padding-right: 5px; padding-bottom: 26px; padding-left: 30px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: arial; font-size: 14px; color: #a1a1a1; line-height: 18px; mso-line-height: exactly; vertical-align: middle;"><p style="padding: 0; margin: 0;"><span style="font-size:12px;">Офис: Москва, ул. Бауманская, д. 11</span></p><p style="padding: 0; margin: 0;"><span style="font-size:12px;">8 495 120-40-96 (с 10 до 19 по Москве)</span></p></div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="600" align="center" class="email-root-wrapper" style="max-width: 600px; min-width: 240px; margin: 0 auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 0px; padding-right: 5px; padding-bottom: 100px; padding-left: 160px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: arial; font-size: 14px; color: #000000; line-height: 14px; mso-line-height: exactly; vertical-align: middle;"> </div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</div>
<!-- content end -->
</center>
</td>
</tr>
</tbody></table>
</body></html>

@ -1,275 +0,0 @@
<!DOCTYPE html>
<!-- saved from url=(0039)file:///home/bigboy/Downloads/form.html -->
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="HandheldFriendly" content="true">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--[if gte IE 7]><html class="ie8plus" xmlns="http://www.w3.org/1999/xhtml"><![endif]-->
<!--[if IEMobile]><html class="ie8plus" xmlns="http://www.w3.org/1999/xhtml"><![endif]-->
<meta name="format-detection" content="telephone=no">
<meta name="generator" content="EDMdesigner, www.edmdesigner.com">
<title>{{ TITLE }}</title>
<style type="text/css" media="screen">
* {line-height: inherit;}
.ExternalClass * { line-height: 100%; }
body, p{padding:0;
margin: 0;
-webkit-text-size-adjust:none; -ms-text-size-adjust:none;} img{line-height:100%; outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;} a img{border: none;} #backgroundTable {margin:0; padding:0; width:100% !important; } a, a:link, .no-detect-local a, .appleLinks a{color:#5555ff !important; text-decoration: underline;} .ExternalClass {display: block !important; width:100%;} .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: inherit; } table td {border-collapse:collapse;mso-table-lspace: 0pt; mso-table-rspace: 0pt;} sup{position: relative; top: 4px; line-height:7px !important;font-size:11px !important;} .mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {text-decoration: default; color: #5555ff !important; pointer-events: auto; cursor: default;} .no-detect a{text-decoration: none; color: #5555ff; pointer-events: auto; cursor: default;} {color: #5555ff;} span {color: inherit; border-bottom: none;} span:hover { background-color: transparent; }
.nounderline {text-decoration: none !important;}
h1, h2, h3 { margin:0; padding:0; }
p {Margin: 0px !important; }
table[class="email-root-wrapper"] { width: 600px !important; }
body {
background: #22b1ff url('{{ DOMAIN }}/static/img/mails/536.jpg') no-repeat center bottom;
}
body { min-width: 280px; width: 100%;}
</style>
<style>
@media only screen and (min-width: 600px) {
}
@media only screen and (max-width: 599px),
only screen and (max-device-width: 599px),
only screen and (max-width: 400px),
only screen and (max-device-width: 400px) {
.email-root-wrapper { width: 100% !important; }
table[class="email-root-wrapper"] { width: 100% !important; }
td[class="wrap"] .full-width { width: 100% !important; height: auto !important;}
td[class="wrap"] .fullwidthhalfleft {width:100% !important;}
td[class="wrap"] .fullwidthhalfright {width:100% !important;}
td[class="wrap"] .fullwidthhalfinner {width:100% !important; margin: 0 auto !important; float: none !important;
clear:both !important; }
td[class="wrap"] .hide { display:none !important; width:0;height:0; overflow:hidden; }
}
@media yahoo{
table {float: none !important;height:auto; }
table[align="left"] {float:left !important; }
td[align="left"] {float:left !important;height:auto; }
table[align="center"] {margin:0 auto; }
td[align="center"] {margin:0 auto;height:auto; }
table[align="right"] {float:right !important; }
td[align="right"] {float:right !important;height:auto; }
}
</style>
<!--[if (gte IE 7) & (vml)]>
<style type="text/css">
html, body {margin:0 !important; padding:0px !important;}
img.full-width { position: relative !important; }
.img134x37 { width: 134px !important; height: 37px !important;}
.img287x74 { width: 287px !important; height: 74px !important;}
</style>
<![endif]-->
<!--[if gte mso 9]>
<style type="text/css">
table, td {
border-collapse: collapse !important;
mso-table-lspace: 0px !important;
mso-table-rspace: 0px !important;
}
.email-root-wrapper { width 600px !important;}
.imglink { font-size: 0px; }
.edm_button { font-size: 0px; }
</style>
<![endif]-->
<!--[if gte mso 15]>
<style type="text/css">
table {
font-size:0px;
mso-margin-top-alt:0px;
}
.fullwidthhalfleft {
width: 49% !important;
float:left !important;
}
.fullwidthhalfright {
width: 50% !important;
float:right !important;
}
</style>
<![endif]-->
<style type="text/css" media="(pointer) and (min-color-index:0)">
html, body {background-image: none !important; background-color: transparent !important; margin:0 !important; padding:0 !important;}
</style>
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" background="{{ DOMAIN }}/static/img/mails/536.jpg" bgcolor="#22b1ff" style="font-family:Arial, sans-serif; font-size:0px;margin:0;padding:0; background: #22b1ff url('{{ DOMAIN }}/static/img/mails/body_background.jpg') no-repeat center bottom !important;">
<!--[if t]><![endif]--><!--[if t]><![endif]--><!--[if t]><![endif]--><!--[if t]><![endif]--><!--[if t]><![endif]--><!--[if t]><![endif]-->
<table align="center" border="0" cellpadding="0" cellspacing="0" background="{{ DOMAIN }}/static/img/mails/536.jpg" style="background: transparent url('{{ DOMAIN }}/static/img/mails/body_background.jpg') no-repeat center bottom !important;" height="100%" width="100%" id="backgroundTable">
<tbody><tr>
<td class="wrap" align="center" valign="top" width="100%">
<center>
<!-- content -->
<div style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="600" align="center" class="email-root-wrapper" style="max-width: 600px; min-width: 240px; margin: 0 auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td align="center" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" align="center">
<tbody><tr><td valign="top" align="center" style="padding-top: 10px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="134" height="37" style="border: 0px none; height: auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><a href="http://skillbox.ru/" target="_blank" class="imglink"><img src="{{ DOMAIN }}/static/img/mails/727.png" width="134" height="37" alt="" border="0" class="img134x37" style="display: block;"></a></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="600" align="center" class="email-root-wrapper" style="max-width: 600px; min-width: 240px; margin: 0 auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%" bgcolor="#ffffff" style="border: 0px none; background-color: #ffffff;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 20px; padding-right: 30px; padding-bottom: 5px; padding-left: 30px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: Helvetica, Helvetica Neue, Arial; font-size: 14px; color: #000000; line-height: 14px; mso-line-height: exactly; vertical-align: middle;"><h1 style="font-family:Helvetica, Helvetica Neue, Arial; font-size: 20px; color: #000000; line-height: 32px; mso-line-height: exactly; vertical-align:middle;padding: 0; margin: 0;">Пришла очередная заявка</h1><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">&nbsp;</p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
<p style="padding: 0; margin: 0;"><span style="color:#808080;">Состав: </span>{{ TITLE }}</p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
{% if USER_NAME %}
<p style="padding: 0; margin: 0;"><span style="color:#808080;">Имя: </span>{{ USER_NAME }}</p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
{% endif %}
{% if EMAIL %}
<p style="padding: 0; margin: 0;"><span style="color:#808080;">Почта: </span>{{ EMAIL }}</p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
{% endif %}
{% if PHONE %}
<p style="padding: 0; margin: 0;"><span style="color:#808080;">Телефон: </span>{{ PHONE }}</p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
{% endif %}
{% if HOST %}
<p style="padding: 0; margin: 0;"><span style="color:#808080;">Источник: </span>{{ HOST }}</p>
<p style="padding: 0; margin: 0;">&nbsp;</p>
{% endif %}
</div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 40px; padding-right: 50px; padding-bottom: 5px; padding-left: 30px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: Helvetica, Helvetica Neue, Arial; font-size: 14px; color: #000000; line-height: 14px; mso-line-height: exactly; vertical-align: middle;"><h1 style="font-family:Helvetica, Helvetica Neue, Arial; font-size: 20px; color: #000000; line-height: 32px; mso-line-height: exactly; vertical-align:middle;padding: 0; margin: 0;"> </h1><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">&nbsp;</p><p style="padding: 0; margin: 0;">Пожалуйста, по любым вопросам смело <span style="font-size:14px;"><strong>звоните по номеру 8 495 120-40-96 </strong><span style="color:#808080;">(с 10:00 до 19:00 по Москве)</span><strong> или пишите на <a style="color: #22b1ff !important; text-decoration: underline !important;" target="_blank"><span style=" color:#22b1ff;">support@skill-box.ru</span></a></strong></span></p></div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style=""><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 10px; padding-right: 50px; padding-bottom: 32px; padding-left: 54px;"><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style=""><table cellpadding="0" cellspacing="0" border="0" width="100%" style="border-top: 2px solid #e8e8e8;">
<tbody><tr><td valign="top" style=""><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td style="padding: 0px;"></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 5px; padding-right: 5px; padding-bottom: 46px; padding-left: 5px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: arial; font-size: 14px; color: #000000; line-height: 18px; mso-line-height: exactly; vertical-align: middle;"><p style="padding: 0; margin: 0;text-align: center;">&nbsp;</p><p style="padding: 0; margin: 0;text-align: center;"><span style="font-size: 14px; font-family: tahoma; color: rgb(136, 136, 136);">с ♥, команда SkillBox</span></p><p style="padding: 0; margin: 0;text-align: center;"><span style="font-family:tahoma;"><a href="http://skillbox.ru/" target="_blank" style="color: #22a8f2 !important; text-decoration: underline !important;"><span style=" color:#22a8f2;">Перейти на наш сайт</span></a></span></p></div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%" style="border: 0px none; background: url('{{ DOMAIN }}/static/img/mails/522.png') no-repeat center;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr><td style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 30px; padding-right: 5px; padding-bottom: 26px; padding-left: 30px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: arial; font-size: 14px; color: #a1a1a1; line-height: 18px; mso-line-height: exactly; vertical-align: middle;"><p style="padding: 0; margin: 0;"><span style="font-size:12px;">Офис: Москва, ул. Бауманская, д. 11</span></p><p style="padding: 0; margin: 0;"><span style="font-size:12px;">8 495 120-40-96 (с 10 до 19 по Москве)</span></p></div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" width="600" align="center" class="email-root-wrapper" style="max-width: 600px; min-width: 240px; margin: 0 auto;">
<tbody><tr><td valign="top" style="padding: 0px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top" style="padding-top: 0px; padding-right: 5px; padding-bottom: 100px; padding-left: 160px;"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody><tr><td valign="top"><div style="text-align: left; font-family: arial; font-size: 14px; color: #000000; line-height: 14px; mso-line-height: exactly; vertical-align: middle;"> </div></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</div>
<!-- content end -->
</center>
</td>
</tr>
</tbody></table>
</body></html>

@ -1,30 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<table width=100%>
<tr><td>
Здравствуйте! <Br><Br>
По многочисленным просьбам слушателей, мы добавили к первому модулю курса "Профессия PR-менеджер" домашнее задание. <Br><Br>
Второй модуль будет доступен после выполнения домашнего задания. <Br><Br>
Как отвечать на домашние задания в системе? <Br>
• После того как отметите последний урок в теме «просмотренным», — появиться активная ссылка на переход в раздел с домашним заданием<Br>
• Ниже на странице с заданием есть форма обратной связи, через неё необходимо направлять задание на проверку. <Br>
Также через неё можно общаться с преподавателем, задавать вопросы, связанными с выполнением работы или вопросы по просмотренному материалу.<Br>
• Как только преподаватель проверит и одобрит Вашу работу, Вам откроется доступ ко второму модулю.<Br><Br>
По всем вопросам, обращайтесь на почту: info@bedev.ru
</td>
</tr>
<tr><td style="padding-bottom: 20px;">С уважением,<Br>SkillBox</td></tr>
<tr><td style="padding-bottom: 20px;"><img src="http://go.skillbox.ru/static/img/logo.png"></td></tr>
<tr><td>Пожалуйста, по любым вопросам смело пишите на support@skillbox.ru</td></tr>
</table>
</body>
</html>

@ -1,101 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Кабинет продаж{% endblock %}
{% block modals %}
{% endblock %}
{% block asside %}
<aside id="aside" class="app-aside hidden-xs bg-dark" style="background: #3a3f51;">
<div class="aside-wrap">
<div class="navi-wrap">
<!-- user -->
<div class="clearfix hidden-xs text-center" id="aside-user">
<div class="dropdown wrapper">
<a href="/management/profile/">
<span class="thumb-lg w-auto-folded avatar m-t-sm">
<img src="{{ request.user.get_image_url }}" class="img-thumbnail" style="width: 100%;" reloader_name="avatar">
</span>
</a>
<a href="#">
<span class="clear">
<span class="block m-t-sm">
<strong class="font-bold text-lt">{{ request.user.get_short_name }}</strong>
</span>
<span class="text-muted text-xs block">{{ request.user.get_role_display }}</span>
</span>
</a>
</div>
</div>
<!-- / user -->
<nav ui-nav="" class="navi clearfix">
<ul class="nav">
{% include 'index_menu.html' %}
</ul>
</nav>
<!-- nav -->
</div>
</div>
</aside>
{% endblock %}
<!-- / aside -->
<!-- content -->
{% block content %}
<div class="col">
<!-- main header -->
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3"><i class="glyphicon glyphicon-home"></i> Кабинет продаж</h1>
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row col-lg-12" style="text-align: center;">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Внутренние счета</a></li>
<li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Свободные счета</a></li>
</ul>
<div class="tab-pane fade">
<div role="tabpanel" class="tab-pane active" id="home">
<p name="error_place" style="padding: 10px;background: #99CC99;color:#fff;width: 50%;font-weight: bold;margin: 50px auto 0;">
Проверка
</p>
<form onsubmit="return false">
<h2 style="font-weight: bold;">Пользователь</h2>
<input name="user_search" type="text" style="margin-right: 1%; width: 50%; margin-left: 1%;padding: 10px;font-size:20px;font-weight: bold;border: 2px solid yellow;left: 15px;
position: relative;">
<img src="/static/img/ui-anim_basic_16x16.gif" style=" position: relative;
left: -45px;
top: -4px;">
<button class="btn btn-green" style="position: absolute;
margin-top: 10px;"><i class="glyphicon glyphicon-user" style="margin-right: 5px;"></i> Зарегистрировать</button>
<h2 style="font-weight: bold;">Услуга</h2>
<select name="service" style="margin-right: 1%; width: 50%; margin-left: 1%;padding: 10px;font-size:20px;font-weight: bold;border: 2px solid yellow;">
<option> --- </option>
{% for price in prices %}
<option>{{ price }}</option>
{% endfor %}
</select>
<h2 style="font-weight: bold;">Стоимость</h2>
<input name="price" type="text" style="margin-right: 1%; width: 50%; margin-left: 1%;padding: 10px;font-size:20px;font-weight: bold;border: 2px solid yellow;" inpmask="phone"><Br>
<button class="btn btn-green btn-lg" style="width: 50%; margin-top: 20px;">Отправить счет</button>
</form>
</div>
<div class="row col-lg-3">
<h3 style=" margin: 5px 0;
border-bottom: 1px dotted #ccc;
padding-bottom: 10px;">Свободные счета</h3>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane fade" id="profile">...</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
<!-- / right col -->
{% endblock %}

@ -1,178 +0,0 @@
{% extends 'base_index.html' %}
{% block asside %}
<aside id="aside" class="app-aside hidden-xs bg-dark" style="background: #3a3f51;">
<div class="aside-wrap">
<div class="navi-wrap">
<!-- user -->
<div class="clearfix hidden-xs text-center" id="aside-user">
<div class="dropdown wrapper">
<a href="/management/profile/">
<span class="thumb-lg w-auto-folded avatar m-t-sm">
<img src="{{ request.user.get_image_url }}" class="img-thumbnail" style="width: 100%;" reloader_name="avatar">
</span>
</a>
<a href="#">
<span class="clear">
<span class="block m-t-sm">
<strong class="font-bold text-lt">{{ request.user.get_short_name }}</strong>
</span>
<span class="text-muted text-xs block">{{ request.user.get_role_display }}</span>
</span>
</a>
</div>
</div>
<!-- / user -->
<nav ui-nav="" class="navi clearfix">
<ul class="nav">
{% include 'index_menu.html' %}
</ul>
</nav>
<!-- nav -->
</div>
</div>
</aside>
{% endblock %}
<!-- / aside -->
<!-- content -->
{% block content %}
<script>
window.counts = {
'info_count': 0,
'simple_count': 0,
'success_count': 0,
'danger_count': 0,
'warning_count': 0,
'all_count': 0
}
</script>
<div class="col">
<!-- main header -->
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-4 col-xs-12">
<h1 class="m-n font-thin h3">История счетов</h1>
</div>
<div class="col-lg-8 col-xs-12">
<ul class="nav nav-pills" role="tablist" style="float: right;">
<li role="presentation" onclick="$('tr.data').hide();$('tr.info').show();" data-toggle="tooltip" data-placement="bottom" title="Активности по оплате еще не было">
<a href="#">
Ожидание согласия <span class="badge" name="info_count">0</span>
</a>
</li>
<li role="presentation" onclick="$('tr.data').hide();$('tr.simple').show();" data-toggle="tooltip" data-placement="bottom" title="Пользователь перешел по ссылке">
<a href="#">
На оплате <span class="badge" name="simple_count">0</span>
</a>
</li>
<li role="presentation" onclick="$('tr.data').hide();$('tr.success').show();">
<a href="#">
Оплачен <span class="badge" name="success_count">0</span>
</a>
</li>
<li role="presentation" onclick="$('tr.data').hide();$('tr.danger').show();" data-toggle="tooltip" data-placement="bottom" title="Пользователь отказался от оплаты счета">
<a href="#">
Отклонен <span class="badge" name="danger_count">0</span>
</a>
</li>
<li role="presentation" onclick="$('tr.data').hide();$('tr.warning').show();" data-toggle="tooltip" data-placement="bottom" title="Для услуг со временем действия">
<a href="#">
Сгорел <span class="badge" name="warning_count">0</span>
</a>
</li>
<li role="presentation" onclick="$('tr.data').show();">
<a href="#">
Все <span class="badge" name="all_count">0</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row">
<table width="100%" class="table table-hover">
<thead>
<tr>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Плательщик</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Телефон</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Email</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Курс</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Услуга</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Сумма</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Дата выставления</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Дата смены статуса</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Статус счета</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Отправленные письма</td>
</tr>
</thead>
<tbody>
{% for i in yourbills %}
<script>
window.counts['{% if i.status == 'F' %}success_count{% endif %}{% if i.status == 'C' %}danger_count{% endif %}{% if i.status == 'H' %}warning_count{% endif %}{% if i.status == 'W' %}info_count{% endif %}{% if i.status == 'P' %}simple_count{% endif %}'] += 1;
window.counts['all_count'] += 1;
</script>
<tr class="data {% if i.status == 'F' %}success{% endif %}{% if i.status == 'C' %}danger{% endif %}{% if i.status == 'H' %}warning{% endif %}{% if i.status == 'W' %}info{% endif %}{% if i.status == 'P' %}simple{% endif %}" style="border-bottom: 1px dotted;">
<td style="padding: 10px;">{{ i.user.get_full_name }}</td>
<td style="padding: 10px;
font-weight: bold;
background: #666;
text-align: center;
color: #fff;">{{ i.user.get_phone }}</td>
<td style="padding: 10px;font-weight: bold;">{{ i.user.email }}</td>
<td style="padding: 10px;">{{ i.service.course }}</td>
<td style="padding: 10px;">{{ i.service.title }}</td>
<td style="padding: 10px;">{{ i.price }}</td>
<td style="padding: 10px;">{{ i.date }}</td>
<td style="padding: 10px;">{{ i.status_changed }}</td>
<td style="padding: 10px;">{{ i.get_status_display }}</td>
<td style="padding: 10px;">
{% for letter in i.create_letters.all %}{{ letter }}<br>{% empty %}-{% endfor %}<br>
{% for letter in i.finish_letters.all %}{{ letter }}<br>{% empty %}-{% endfor %}
</td>
</tr>
{% endfor %}
<script>
for (var i in window.counts ){
$('[name='+i+']').html(window.counts[i]);
}
</script>
</tbody>
</table>
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
<!-- / right col -->
{% endblock %}
{% block js %}
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
</script>
{% endblock %}

@ -1,135 +0,0 @@
{% extends 'base_index.html' %}
{% block modals %}
<!-- Modal Смена пароля-->
<div class="modal fade" id="new_bill" style="z-index: 12000;" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('new_bill')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1441326667_certificate.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Новый счет</p>
<form action="" name="new_bill" onsubmit="return false;">
<p class="error" id="error_new_bill"></p>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Пользователь</p>
<input type="text" name="new_bill_user_id" readonly style="display: none;">
<input type="text" name="new_bill_user" style="background-color: #ffc;" readonly>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Услуга</p>
<select type="text" name="new_bill_service" onchange="$('[name=new_bill_checked_service]').val($('[name=new_bill_service]').find('option:selected').attr('id'))" style=" width: 100%;
padding: 10px;
background-color: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;
margin-bottom: 10px;">
</select>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Стоимость</p>
<input type="text" name="new_bill_cost" value="0" style="width: 100%;background: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;">
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Ваш комментарий</p>
<textarea name="new_bill_comment" style="width: 100%;background: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;"></textarea>
<input name="new_bill_checked_service" type="text" readonly style="display: none;">
<button class="btn btn-warning btn-lg" onclick="create_new_bill()">Отправить</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block asside %}
<aside id="aside" class="app-aside hidden-xs bg-dark" style="background: #3a3f51;">
<div class="aside-wrap">
<div class="navi-wrap">
<!-- user -->
<div class="clearfix hidden-xs text-center" id="aside-user">
<div class="dropdown wrapper">
<a href="/management/profile/">
<span class="thumb-lg w-auto-folded avatar m-t-sm">
<img src="{{ request.user.get_image_url }}" class="img-thumbnail" style="width: 100%;" reloader_name="avatar">
</span>
</a>
<a href="#">
<span class="clear">
<span class="block m-t-sm">
<strong class="font-bold text-lt">{{ request.user.get_short_name }}</strong>
</span>
<span class="text-muted text-xs block">{{ request.user.get_role_display }}</span>
</span>
</a>
</div>
</div>
<!-- / user -->
<nav ui-nav="" class="navi clearfix">
<ul class="nav">
{% include 'index_menu.html' %}
</ul>
</nav>
<!-- nav -->
</div>
</div>
</aside>
{% endblock %}
<!-- / aside -->
<!-- content -->
{% block content %}
<div class="col">
<!-- main header -->
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">Пользователи системы</h1>
<!-- <small class="text-muted">Welcome to angulr application</small> -->
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row">
<form onsubmit="return false;">
<p style="font-size: 20px; font-weight: bold;margin-left: 2%;">Поиск пользователей</p>
<input name="user_search" type="text" style="margin-right: 1%; width: 85%; margin-left: 1%;padding: 10px;font-size:20px;font-weight: bold; border: 2px solid yellow;" inpmask="phone">
<button onclick="search_users($('[name=user_search]').val())"
style="float: right; width: 12%;margin-right: 1%;padding: 10px;font-weight: bold;font-size: 20px;">Поиск</button>
</form>
<p style="text-align: center;margin-top: 30px;"><button class="btn btn-bg btn-lg btn-success" style="width: 50%;" onclick="simple_registration('Pd1GTgUSHH1TjzcaPEqB', $('[name=user_search]').val())">Отправить письмо регистрации</button></p>
<p style="text-align: center;padding: 10px;display: none;" name="load_user_list"><img src="/static/img/ui-anim_basic_16x16.gif"></p>
<p style="text-align: center;padding: 10px;display: none;margin: 0 10px;background: #fff;" name="empty_user_list">Результатов нет</p>
<table width="100%" style="margin-top: 20px;">
<thead>
<tr style="border-bottom: 1px dotted #ccc;">
<td style="padding: 10px; background: #fff;border-right: 1px dotted #ccc;">Пользователь</td>
<td style="padding: 10px; background: #fff;border-right: 1px dotted #ccc;">email</td>
<td style="padding: 10px; background: #fff;border-right: 1px dotted #ccc;">Телефон</td>
<td style="padding: 10px; background: #fff;">Действие</td>
</tr>
</thead>
<tbody name="search_results">
</tbody>
</table>
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
<!-- / right col -->
{% endblock %}

@ -1,295 +0,0 @@
{% extends 'base_index.html' %}
{% block asside %}
<aside id="aside" class="app-aside hidden-xs bg-dark" style="background: #3a3f51;">
<div class="aside-wrap">
<div class="navi-wrap">
<!-- user -->
<div class="clearfix hidden-xs text-center" id="aside-user">
<div class="dropdown wrapper">
<a href="/management/profile/">
<span class="thumb-lg w-auto-folded avatar m-t-sm">
<img src="{{ request.user.get_image_url }}" class="img-thumbnail" style="width: 100%;" reloader_name="avatar">
</span>
</a>
<a href="#">
<span class="clear">
<span class="block m-t-sm">
<strong class="font-bold text-lt">{{ request.user.get_short_name }}</strong>
</span>
<span class="text-muted text-xs block">{{ request.user.get_role_display }}</span>
</span>
</a>
</div>
</div>
<!-- / user -->
<nav ui-nav="" class="navi clearfix">
<ul class="nav">
<li>
<a href="/" class="auto">
<i class="glyphicon glyphicon-education text-warning-dk"></i>
<span>Курсы</span>
</a>
</li>
<li>
<a href="/management/account" class="auto">
<i class="glyphicon glyphicon-home text-warning-dk"></i>
<span>Кабинет</span>
</a>
</li>
<li class="active">
<a href="#">
<i class="glyphicon glyphicon-star"></i>
<span>Запросы</span>
</a>
</li>
<li>
<a href="/management/profile">
<i class="icon-user icon text-warning-dk"></i>
<span>Пользователи</span>
</a>
</li>
<li>
<a href="/management/history">
<i class="glyphicon glyphicon-stats text-warning-dk"></i>
<span>История</span>
</a>
</li>
</ul>
</nav>
<!-- nav -->
</div>
</div>
</aside>
{% endblock %}
{% block modals %}
<div class="modal fade" id="new_bill" tabindex="-1" style="z-index: 12000;" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('new_bill')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1441326667_certificate.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Новый счет</p>
<form action="" name="new_bill" onsubmit="return false;">
<p class="error" id="error_new_bill"></p>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Пользователь</p>
<input type="text" name="new_bill_user_id" readonly style="display: none;">
<input type="text" name="new_bill_user" style="background-color: #ffc;" readonly>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Услуга</p>
<select type="text" name="new_bill_service" onchange="$('[name=new_bill_checked_service]').val($('[name=new_bill_service]').find('option:selected').attr('id'))" style=" width: 100%;
padding: 10px;
background-color: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;
margin-bottom: 10px;">
</select>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Стоимость</p>
<input type="text" name="new_bill_cost" value="0" style="width: 100%;background: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;">
<input name="new_bill_checked_service" type="text" readonly style="display: none;">
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Ваш комментарий</p>
<textarea name="new_bill_comment" style="width: 100%;background: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;"></textarea>
<button class="btn btn-warning btn-lg" onclick="create_new_bill()">Отправить</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="fail_bill" style="z-index: 2100;" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('fail_bill')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1441326667_certificate.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Не продал</p>
<form action="" name="fail_bill" onsubmit="return false;">
<p class="error" id="error_fail_bill"></p>
<p style="margin-bottom: 0;padding-bottom: 10px;
padding-top: 20px;">Причина отказа</p>
<input style="display: none" type="text" value="" name="fail_bill_id">
<textarea name="fail_bill_comment" style="width: 100%;background: #ffc;
border: 1px solid #f1f1f1;
border-radius: 3px;"></textarea>
<button class="btn btn-warning btn-lg" onclick="fail_service_request()">Отправить</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
{% for i in servicerequests %}
<div class="modal fade" id="service_request_{{ i.id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="z-index: 2000;">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-4 col-sm-5 col-xs-12 center_img">
<img src="/static/img/1442374853_cart_completed.png" alt="">
{% if i.charge %}
<h3 style="
margin-left: 5px;
font-weight: bold;
margin-bottom: 20px;">Поручение руководителя</h3>
<div style=" background-color: #ffc;
padding: 10px;
border-radius: 3px;text-align: justify;font-weight: bold;">
{{ i.charge }}
</div>
{% endif %}
</div>
<div class="col-md-8 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Обработка заявки</p>
<form action="" name="service_request_{{ i.id }}" onsubmit="return false;">
<div style="text-align: left;margin-bottom: 10px;font-size: 20px;height: 40px;">
<span class="label label-danger" style="font-size: 25px;">{{ i.student.get_phone }}</span>
<span class="label label-default" style="font-size: 25px;">{{ i.student.get_back_phone }}</span>
</div>
<div style="text-align: left;margin-bottom: 10px;font-size: 20px;">
<b>Студент:</b>
<div style="background-color: #f1f1f1;padding: 5px 10px;margin-top: 5px;border-radius: 3px;">{{ i.student.get_full_name }}</div>
</div>
<div style="text-align: left;margin-bottom: 10px;font-size: 20px;">
<b>Услуга:</b>
<div style="background-color: #f1f1f1;padding: 5px 10px;margin-top: 5px;border-radius: 3px;">
{{ i.get_name }}
</div>
</div>
<div style="text-align: left;margin-bottom: 10px;font-size: 20px;">
<b>Курс:</b>
<a href="/wallet/pay/traffic_map/{{ i.course.id }}" style="float: right;color: blue;" target="_blank">тарифы курса</a>
<a href="/courses/{{ i.course.id }}" style="float: right;color: blue;margin-right: 10px;" target="_blank">страница курса</a>
<div style="background-color: #f1f1f1;padding: 5px 10px;margin-top: 5px;border-radius: 3px;">
{{ i.course }}
</div>
</div>
<div style="text-align: left;margin-bottom: 10px;font-size: 20px;">
<b>Город:</b>
<div style="background-color: #f1f1f1;padding: 5px 10px;margin-top: 5px;border-radius: 3px;">
{% if i.user.city %}
{{ i.user.city }}
{% else %}
Не указан
{% endif %}
</div>
</div>
<button type="button" class="btn btn-warning btn-lg" onclick="sent_bill('{{ i.student.id }}', '{{ i.student.get_full_name }}')">Выписать счет</button>
<button type="button" class="btn btn-warning btn-lg" onclick="fail_service_request_modal('{{ i.id }}')">Не продал</button>
</form>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
{% endfor %}
{% endblock %}
<!-- / aside -->
<!-- content -->
{% block content %}
<div class="col">
<!-- main header -->
<div class="bg-light lter b-b wrapper-md">
<div class="row">
<div class="col-lg-12 col-xs-12">
<h1 class="m-n font-thin h3">Запросы на услуги</h1>
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row">
<table width="100%">
<thead>
<tr>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Плательщик</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Телефон</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Курс</td>
<td style="padding: 10px;text-align: center;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;">Статус запроса</td>
<td style="padding: 10px;
font-weight: bold;
background-color: #fff;border-right: 1px dotted #999;"></td>
</tr>
</thead>
<tbody>
{% for i in servicerequests %}
<tr style="border-bottom: 1px dotted;" name="service_request_row_{{ i.id }}">
<td style="padding: 10px; background: #ffc;">{{ i.student }}</td>
<td style="padding: 10px; background: #ffc;font-weight: bold;">{{ i.student.get_phone }}</td>
<td style="padding: 10px; background: #ffc;">{{ i.get_name }}</td>
<td style="padding: 10px; background: #ffc;font-weight: bold;text-align: center;">
{% if i.manager == request.user and i.status == 'W' %}
<span class="label label-danger">Вы не закончили обработку</span>
{% else %}
{{ i.get_status_display }}
{% endif %}
</td>
<td style="padding: 10px; background: #ffc;">
{% if i.manager == request.user and i.status == 'W' %}
<button onclick="open_service_request({{ i.id }})">Продолжит работу</button>
{% else %}
<button onclick="open_service_request({{ i.id }})">Взять в работу</button>
{% endif %}
</td>
</tr>
{% empty %}
<tr>
<td colspan="7" style="text-align: center;background: #ffc;padding: 20px;">
<h1 style="font-weight: bold;">
Запросов нет
</h1>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
<!-- / right col -->
{% endblock %}

@ -1,47 +0,0 @@
<ul class="nav" style="float: left;">
<li style="z-index: 1;">
<a href="/all_comments/">
<i class="glyphicon glyphicon-object-align-left"></i>
<span>Комментарии</span>
</a>
</li>
{% if request.user.is_admin %}
<li>
<a href="/management/reports/freeweek/" class="auto">
<i class="glyphicon glyphicon-dashboard"></i>
<span>Бесплатка</span>
</a>
</li>
<li>
<a href="/management/reports/hw_process_pp/" class="auto">
<i class="glyphicon glyphicon-time"></i>
<span>Проверки ПП</span>
</a>
</li>
<li>
<a href="/management/reports/hw_process_pt/" class="auto">
<i class="glyphicon glyphicon-time"></i>
<span>Проверки ПУ</span>
</a>
</li>
<li style="z-index: 1;">
<a href="/management/reports/progress" class="auto">
<i class="glyphicon glyphicon-align-left"></i>
<span>Прогресс</span>
</a>
</li>
<li>
<a href="/reports/" class="auto">
<i class="glyphicon glyphicon-th"></i>
<span>Общий отчет</span>
</a>
</li>
<li>
<a href="/management/reports/mails/" class="auto">
<i class="glyphicon glyphicon-envelope"></i>
<span>Рассылки</span>
</a>
</li>
{% endif %}
</ul>

@ -1,70 +0,0 @@
{% extends 'reports/base_index.html' %}
{% block title %}Отчеты{% endblock %}
{% block head %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script>
{% endblock %}
{% block content %}
<div class="col-lg-6" style="text-align: center;">
<h2 style="text-align: right;font-weight: bold;">Д/З</h2>
<select class="form-control" name="hw_report">
<option value="0"> --- </option>
{% for id, course in courses.items %}
<option value="{{ id }}">{{ course }}</option>
{% endfor %}
</select>
<img src="/static/img/preloader.gif" style="padding-top: 20px;display: none;" name="hw_preloader">
<div name="hw_chart" class="radarChart"></div>
</div>
<div class="col-lg-6" style="text-align: center;">
<h2 style="text-align: right;font-weight: bold;">Уроки</h2>
<select class="form-control" name="les_report">
<option value="0"> --- </option>
{% for id, course in courses.items %}
<option value="{{ id }}">{{ course }}</option>
{% endfor %}
</select>
<img src="/static/img/preloader.gif" style="padding-top: 20px;display: none;" name="les_preloader">
<div name="les_chart" class="radarChart2"></div>
</div>
<div class="col-lg-12">
<h3 style="margin-left: 20px;margin-top:40px;font-weight: bold;border-top: 1px dotted #ccc;padding-top: 30px;text-align: right;">
<i class="glyphicon glyphicon-equalizer"></i> Активность пользователей
</h3>
<table class="table table-hover" style="background: #ffc;">
<tr style="font-weight: bold;background: #ccc;">
<td>Всего пользователей</td>
<td>Не активных</td>
<td>Оплатившие</td>
<td>Без активности <i>День</i></td>
<td>Без активности <i>3 Дня</i></td>
<td>Без активности <i>Неделю</i></td>
<td>Без активности <i>Месяц</i></td>
</tr>
<tr>
<td style="border-right: 1px dotted #ccc;">{{ users.all }}</td>
<td style="border-right: 1px dotted #ccc;">{{ users.no_active.int }} <i>[{{ users.no_active.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.all.int }} <i>[{{ users.bought.all.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.day.int }} <i>[{{ users.bought.day.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.three.int }} <i>[{{ users.bought.three.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.week.int }} <i>[{{ users.bought.week.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.month.int }} <i>[{{ users.bought.month.proc }}%]</i></td>
</tr>
</table>
</div>
<div class="col-lg-12" style="text-align: center;">
<h2 style="text-align: right;font-weight: bold;">Отчет прохождения</h2>
<select class="form-control" name="progress_report">
<option value="0"> --- </option>
{% for id, course in courses.items %}
<option value="{{ id }}">{{ course }}</option>
{% endfor %}
</select>
<img src="/static/img/preloader.gif" style="padding-top: 20px;display: none;" name="progress_preloader">
<div name="progress_chart" class="radarChart"></div>
</div>
{% endblock %}
{% block js %}
<script src="/static/js/radarChart.js"></script>
<script src="/static/js/reports.js"></script>
{% endblock %}

@ -1,67 +0,0 @@
{% extends 'base_index.html' %}
{% block content %}
<div class="col" style="padding-left: 20px; padding-right: 20px;">
<!-- main header -->
<div>
<div class="wrapper-lg" style="padding-bottom: 0; padding-top: 20px;">
<div class="row m-t">
<div class="clear m-b">
<div class="m-b m-t-sm">
<span class="h1 text text-u-c gread_title" style="font-size: 60px;">{{ news.title }}</span><Br>
<p style="margin-top: 5px;
background: #f1f1f1;
padding: 5px 10px;
border-radius: 5px;">{{ news.get_date }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row well well-lg">
{{ news.content|safe }}
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
<div class="col w-md bg-white-only b-l bg-auto no-border-xs aside-col">
{% if request.user.is_authenticated %}
<div class="padder-md">
<!-- streamline -->
<div class="m-b m-t text-md">Последняя активность</div>
<div class="streamline b-l m-b">
<div class="sl-item b-success b-l">
<div class="m-l">
<div class="text-muted label-small">минуту назад<br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6</div>
<p>Ваше <a href class="text-info">домашнее задание</a> одобрено преподавателем.</p>
</div>
</div>
<div class="sl-item b-danger b-l">
<div class="m-l">
<div class="text-muted label-small">23:30 <br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6.</div>
<p>Ваше домашнее задание проверено преподавателем. Вам необходимо <a href class="text-info">провести работу над ошибками</a></p>
</div>
</div>
<div class="sl-item b-info b-l">
<div class="m-l">
<div class="text-muted label-small">понедельник, 03.02.2015<br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6.</div>
<p>Преподаватель <a href class="text-info">оставил комментарий</a></p>
</div>
</div>
</div>
<!-- / streamline -->
</div>
{% endif %}
<div class="panel-body">
<div class="m-b m-t text-md">Новости Школы</div>
<div id="news_block"></div>
</div>
</div>
<!-- / right col -->
{% endblock %}

@ -1,283 +0,0 @@
<!-- Modal Зарегистрированый пользователь-->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('registration_form', 'error_registration')"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-4 col-sm-5 col-xs-12 center_img" style="box-sizing: border-box;">
<img src="/static/img/registr.png" alt="">
</div>
<div class="col-md-8 col-sm-7 col-xs-12" style="box-sizing: border-box;">
<div class="activ">
<p class="modal-title" id="myModalLabel">Бесплатная регистрация</p>
<form action="" name="registration_form" onsubmit="return false;">
<p class="error" id="error_registration" style="display: none"></p>
<input class="padd_bottom" type="text" placeholder="E-mail" name="email" style="box-sizing: border-box;"><br>
<input class="padd_bottom" type="password" placeholder="Введите пароль" name="password1" style="box-sizing: border-box;"><br>
<input class="padd_bottom" type="password" placeholder="Подтвердите пароль" name="password2" style="box-sizing: border-box;"><br>
<button class="btn btn-warning btn-lg" onclick="registry_go()" style="box-sizing: border-box;">Зарегистрироваться</button>
<div>
<input id="checkBox" type="checkbox" style="float: left; width: 20px; height: 20px; margin-right: 10px; margin-top: 0px;">
<span>Регистрируясь, вы соглашаетесь с <a href="/oferta">договором-оферты</a></span>
</div>
</form>
<a href="#" data-toggle="modal" data-target="#myModal1" data-dismiss="modal" aria-label="Close" class="wht js-open-modal">Я уже зарегистрирован</a>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Зарегистрированый пользователь-->
<div class="modal fade" id="ArticleRegister" tabindex="-1" role="dialog" aria-labelledby="ArticleRegister" aria-hidden="true" style="box-sizing: border-box;">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header" style=" box-sizing: border-box;">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('registration_form2', 'error_registration2')"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body" style="padding-left: 0;">
<div class="col-md-6 col-sm-6 col-xs-12 center_img" style="box-sizing: border-box;padding-left: 0;">
<img src="/static/img/article_auth.png" alt="" style="width: 100%;">
</div>
<div class="col-md-6 col-sm-6 col-xs-12" style="box-sizing: border-box;">
<div class="activ">
<p class="modal-title" id="myModalLabel" style="text-align: left;">Получите подборку лучших статей и видео о программировании, чтобы не тратить время на их поиск</p>
<p style=" font-size: 14px;
font-weight: normal;
text-align: left;"><span style="font-weight: bold;color: #669fff;">Введите адрес электронной почты</span>, который вы используете каждый день, нажмите <span style="font-weight: bold;color: #669fff;">«Зарегистрироваться»</span> и мы пришлем подборку лучших статей и видео о программировании.</p>
<form action="" name="registration_form2" onsubmit="return false;">
<p class="error" id="error_registration2" style="display: none"></p>
<input class="padd_bottom" type="text" placeholder="E-mail" name="email" style="box-sizing: border-box;"><br>
<input class="padd_bottom" type="password" placeholder="Введите пароль" name="password1" style="box-sizing: border-box;"><br>
<input class="padd_bottom" type="password" placeholder="Подтвердите пароль" name="password2" style="box-sizing: border-box;"><br>
<button class="btn btn-warning btn-lg" onclick="registry_go2()" style="box-sizing: border-box;
background: #0078ff;
border: 0;
color: #fff !important;" >Зарегистрироваться</button>
</form>
<a href="#" data-toggle="modal" data-target="#myModal1" data-dismiss="modal" aria-label="Close" class="wht js-open-modal" style="padding-top: 0;">Я уже зарегистрирован</a>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Окно с после восст пароля -->
<div class="modal fade" id="PostRegistration" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/pass_success.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Успешная регистрация!</p>
<form method="post" action="/access/fast_auth/" name="final_form">
{% csrf_token %}
<p style="text-align: center; margin-top: 10px;"><input type="submit" class="btn btn-success btn-lg js-open-modal" value="Начать изучение" style=" text-align: center;"></p>
</form>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<!-- Modal Вход в систему -->
<div class="modal fade" id="myModal1" tabindex="-1" role="dialog" aria-labelledby="myModal1" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('auth_form', 'error_auth')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-6 col-sm-6 col-xs-12 center_img" style="box-sizing: border-box; padding-left: 0;
text-align: left;">
<img src="/static/img/welcome-screen.png" alt="" style="width: 100%">
</div>
<div class="col-md-6 col-sm-6 col-xs-12" style="box-sizing: border-box;">
<div class="activ" style=" float: left;
width: 100%;
clear: both;">
<p class="modal-title" id="myModalLabel">Вход в систему</p>
<form action="" name="auth_form" onsubmit="return false;">
<p class="error" id="error_auth" style="background: #ffc;border-radius: 5px;display: none;"></p>
<input class="padd_bottom" type="text" placeholder="E-mail" name="email" style="box-sizing: border-box;"><br>
<input type="password" placeholder="Введите пароль" name="password" style="box-sizing: border-box;"><br>
<button class="btn btn-warning btn-lg" onclick="auth_go(false);" style="box-sizing: border-box;">Войти</button>
</form>
<div style="width: 100%; clear: both">
<a href="#" data-toggle="modal" data-target="#myModal" data-dismiss="modal" aria-label="Close" class="wht js-open-modal" style="width: 50%;padding: 0; float: left;">Создать аккаунт</a>
<a href="#" data-toggle="modal" data-target="#myModal3" data-dismiss="modal" aria-label="Close" class="wht js-open-modal" style="width: 50%;padding: 0; float: left;">Забыл пароль</a>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="authNoneClose" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
</div>
<div>
<div class="col-md-6 col-sm-6 col-xs-12 center_img" style="box-sizing: border-box; padding-left: 0;
text-align: left;">
<img src="/static/img/welcome-screen.png" alt="" style="width: 100%">
</div>
<div class="col-md-6 col-sm-6 col-xs-12">
<div class="activ">
<p class="modal-title" id="myModalLabel">Вход в систему</p>
<form name="error_auth_form" onsubmit="return false;">
<p class="error" id="error_auth" style="background: #ffc;border-radius: 5px;">Авторизуйтесь для доступа к контенту</p>
<input class="padd_bottom" type="text" placeholder="E-mail" name="email"><br>
<input type="password" placeholder="Введите пароль" name="password"><br>
<button class="btn btn-warning btn-lg" onclick="auth_go(true);">Войти</button>
</form>
<a href="#" data-toggle="modal" data-target="#myModal" data-dismiss="modal" aria-label="Close" class="wht app-aside js-open-modal" style="width: 50%;">Создать аккаунт</a>
<a href="#" data-toggle="modal" data-target="#myModal3" data-dismiss="modal" aria-label="Close" class="wht app-aside js-open-modal" style="width: 50%;">Забыл пароль</a>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</div>
<!-- Modal Восстановления пароля -->
<div class="modal fade" id="myModal3" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="clear_form('forgot_form', 'error_forgot')"><span aria-hidden="true">&times;</span></button>
</div>
<div>
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/pass_reset.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Восстановление пароля</p>
<form action="" class="m-t-md" onsubmit="return false;" name="forgot_form">
<p class="error" id="error_forgot" style="display: none"></p>
<input type="email" placeholder="E-mail" name="email"><br>
<button class="btn btn-warning btn-lg" onclick="forgot()">Восстановить пароль</button>
</form>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<!-- Modal Окно с после восст пароля -->
<div class="modal fade" id="myModal4" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/pass_success.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Восстановление пароля</p>
<p class="text_myModal4">Письмо с информацией отправлено на почту</p>
<button class="btn btn-warning btn-lg js-open-modal" data-dismiss="modal" aria-label="Close">Закрыть</button>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<!-- Modal Окно с после восст пароля -->
<div class="modal fade" id="NewPasswordSent" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/pass_success.png" alt="">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Восстановление пароля</p>
<p class="text_myModal4">Новый пароль отправлен на вашу почту</p>
<button type="button" class="btn btn-warning btn-lg js-open-modal" data-dismiss="modal" aria-label="Close">Закрыть</button>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
<!-- Modal Окно с после восст пароля -->
<div class="modal fade" id="youblocked" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="background: #f2f2f2;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="col-md-5 col-sm-5 col-xs-12 center_img">
<img src="/static/img/oops.jpg" alt="" style="width: 100%;">
</div>
<div class="col-md-7 col-sm-7 col-xs-12">
<div class="activ">
<p class="modal-title title1" id="myModalLabel">Пользователь заблокирован</p>
<p style="text-align: left;font-weight: normal;">С вашего аккаунта замечена подозрительная активность c (<span name="youblocked_len"></span>) IP адресов. Аккаунт временно заблокирован, просим для уточнения обратиться в администрацию на почту hello@skillbox.ru</p>
<button type="button" class="btn btn-warning btn-lg js-open-modal" data-dismiss="modal" aria-label="Close">Закрыть</button>
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
{% if request.GET.userblocked %}
<script>
$('#youblocked').modal('show');
$('[name="youblocked_len"]').html({{ request.GET.userblocked }})
</script>
{% endif %}

@ -1,63 +0,0 @@
{% extends 'base_index.html' %}
{% block title %}Комментарий #{{ comment.id }}{% endblock %}
{% block content %}
<div class="col" style="padding-left: 20px; padding-right: 20px;">
<!-- main header -->
<div>
<div class="wrapper-lg" style="padding-bottom: 0; padding-top: 20px;">
<div class="row m-t">
<div class="clear m-b">
<div class="m-b m-t-sm">
<span class="h1 text text-u-c gread_title" style="font-size: 60px;">Комментарий #{{ comment.id }}</span><Br>
<p style="margin-top: 5px;
background: #f1f1f1;
padding: 5px 10px;
border-radius: 5px;">{{ comment.date }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="wrapper-md">
<div class="row well well-lg">
{{ comment.text|safe }}
</div>
</div>
<!-- / main header -->
</div>
<!-- / main -->
<!-- right col -->
<div class="col w-md bg-white-only b-l bg-auto no-border-xs aside-col">
{% if request.user.is_authenticated %}
<div class="padder-md">
<!-- streamline -->
<div class="m-b m-t text-md">Последняя активность</div>
<div class="streamline b-l m-b">
<div class="sl-item b-success b-l">
<div class="m-l">
<div class="text-muted label-small">минуту назад<br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6</div>
<p>Ваше <a href class="text-info">домашнее задание</a> одобрено преподавателем.</p>
</div>
</div>
<div class="sl-item b-danger b-l">
<div class="m-l">
<div class="text-muted label-small">23:30 <br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6.</div>
<p>Ваше домашнее задание проверено преподавателем. Вам необходимо <a href class="text-info">провести работу над ошибками</a></p>
</div>
</div>
<div class="sl-item b-info b-l">
<div class="m-l">
<div class="text-muted label-small">понедельник, 03.02.2015<br>Курс &laquo;Профессия веб-разработчик&raquo;, занятие 6.</div>
<p>Преподаватель <a href class="text-info">оставил комментарий</a></p>
</div>
</div>
</div>
<!-- / streamline -->
</div>
{% endif %}
</div>
<!-- / right col -->
{% endblock %}

@ -1,281 +0,0 @@
<!-- По соглашению "Консорциума Всемирной Паутины" - указываем браузеру формат документа -->
<!--[https://ru.wikipedia.org/wiki/Консорциум_Всемирной_паутины] -->
<!DOCTYPE html>
<!-- Указываем основной язык документа -->
<html lang="ru" style="background: #fff;">
<!--
`............................................`
sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs
sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs
sMMMMMssssssssssssssssssssssssssssssssssMMMMMs
sMMMMM MMMMMs
sMMMMM MMMMMs
sMMMMM :yyyyy. MMMMMs
sMMMMM /MMMMMo MMMMMs
sMMMMM /MMMMMo MMMMMs
sMMMMM /MMMMMo MMMMMs
sMMMMM +MMMMMo MMMMMs
sMMMMM +MMMMMo MMMMMs
sMMMMM +MMMMMo MMMMMs
sMMMMM +MMMMMo MMMMMs
sMMMMM oMMMMMo MMMMMs
sMMMMM oMMMMMo .....` MMMMMs
sMMMMM oMMMMMo hMMMM: MMMMMs
sMMMMM sMMMMMo hMMMM: MMMMMs
sMMMMM `:::::: -::::` MMMMMs
sMMMMM MMMMMs
sMMMMMyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyMMMMMs
sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs
sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs
``````````````````````````````````````````````
-->
<head>
<!-- Говорим браузеру в какой кодировке открывать страницу -->
<meta charset="utf-8" />
<!-- Делаем удобочитаемым текст на устройствах с маленьким экраном -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<!-- Устанавливаем заголовок документа -->
<title>{{ face.title }} - {{ NAME }}</title>
<!-- Подключаем иконку рядом с заголовком документа -->
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon">
<!-- Подключаем основное оформление LMS системы -->
<link href="/static/css/app.css" rel="stylesheet" type="text/css">
<!-- Подключаем необходимые библиотеки,
файлы JavaScript[https://ru.wikipedia.org/wiki/JavaScript]
и/или CSS[https://ru.wikipedia.org/wiki/CSS] -->
{% block content.head %}
{{ content.head|safe }}
{% endblock %}
<!-- Для опытных пользователей -->
<!--
Мы могли бы подключить библиотеки функцией JS прямо из консоли разработчика.
К примеру подключение библиотеки JQuery:
(function(d,s){s=d.createElement('script');s.src='https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.js';(d.head||d.documentElement).appendChild(s)})(document);
Такая возможность может быть использована злоумышлинниками для вредоностного воздействия на ваш сервер/сайт
Вы можете защититься от подобного воздействия путем добавления HTTP заголовка "Content-Security-Policy"
Описание заголовка: [https://www.w3.org/Security/wiki/Content_Security_Policy]
Пожалуйста, учитесь читать исходную документацию и понимать основы технологий, которые вы используете.
[{{ DOMAIN }}courses/1]
-->
<!-- Не бойтесь экспериментировать, будьте неутомимыми исследователями, любите то, что вы делаете -->
<!-- Барышников Николай Романович / Технический директор компании "{{ NAME }}" [{{ DOMAIN }}ID2-75686/]-->
</head>
<body style="margin: 0;background: #fff;">
<!-- Приступим к экспериментам -->
<h1 style="margin: 0;padding: 10px 10px 20px;">
Мастерская "{{ face.title }}"
<div style="float: right;position: absolute;right: 20px;top: 0;">
<span style="font-size: 15px;">Ключ мастерской: <span style="
color: cornflowerblue;
border-bottom: 1px dotted cornflowerblue;">{{ face.key }}</span></span><br>
<span style="font-weight: normal;
cursor: pointer;
color: cornflowerblue;
border-bottom: 1px dotted cornflowerblue;
float: right;font-size: 12px;" onclick="$('[name=workshop_more]').fadeIn()">подробнее</span>
</div>
</h1>
<div style="font-size: 15px;
font-weight: normal;
text-align: left;
position: absolute;
background: #ffc;
float: right;
right: 10px;
margin-top: -30px;
border-radius: 3px;
padding: 10px 20px;
border: 1px solid #ccc;display: none;" name="workshop_more">
<p style="margin-top: 0;
text-align: left;
font-weight: bold;
border-bottom: 1px dotted #ccc;
padding-bottom: 10px;">
Подробная информация
<span style="font-weight: normal;
cursor: pointer;
color: cornflowerblue;
border-bottom: 1px dotted cornflowerblue;
float: right;font-size: 12px;" onclick="$('[name=workshop_more]').fadeOut()">закрыть</span>
</p>
<b>Доступ:</b> {{ face.access }}<br>
<b>Открытие комнаты:</b> {{ face.date }}<br>
<b>Просмотров:</b> {{ face.views }}<Br>
<b>Студентов* посетило:</b> {{ face.students }}<br>
<b>Студенты* <span style="color: green;">on-line</span>:</b>
{{ face.online }}
<ul style="list-style: none; background: #f1f1f1;padding: 0;">
{% for student in face.now_users %}
<li style="padding: 10px; margin-bottom: 5px; height: 40px;">
<img src="{{ student.ava }}" style=" margin-right: 10px;
max-width: 30px;
height: auto;
border-radius: 20px; float: left;margin-top: 5px;">
<span style="font-weight: bold;position: relative;">
{% if student.name %}{{ student.name }}{% else %}{{ student.interactive_key }}{% endif %} <span style="color: green;">online</span>
</span><Br>
<span>{% if student.is_staff %}<img src="/static/img/mini_logo.png" style="height: 10px;"
title="Команда «{{ NAME }}»"
alt="Команда «{{ NAME }}»">{% endif %}
{{ student.role }}
</span>
<a href="{{ student.profile }}" target="_blank" style="
color: cornflowerblue;
border-bottom: 1px dotted cornflowerblue;
float: right;font-size: 12px;margin-top: -20px;">Посмотреть профиль</a>
</li>
{% endfor %}
</ul>
<br>
<p><span style="font-size: 12px;font-weight: normal;">* - Пользователи, прошедшие процесс регистрации</span></p>
</div>
<div style=" float: left;
width: 20%;
padding: 10px;
background: #f1f1f1;
max-height: 400px;
border: 1px solid #ccc;
border-radius: 3px;
overflow-x: hidden;
overflow-y: auto">
<p style="font-weight: bold; padding-bottom: 5px;margin: 0 0 10px;border-bottom: 1px dotted #ccc;">
События мастерской:
<span name="workshop_log_count" style="background: red; border-radius: 10px; color: #fff;font-weight: bold; padding: 0 5px; float:right;" title="Количество событий">0</span>
</p>
<ul name="workshop_log" style="list-style: none; padding: 0;">
</ul>
</div>
<div style="float:left; width: 80%; padding-bottom: 150px;">
{% if content.body %}
<div style="border-bottom: 1px solid #f1f1f1;padding-bottom: 10px;margin-top: 0;">
<p style="font-weight: bold;
background: #f1f1f1;
padding: 10px;margin-top: 0;">
Интерактивные элементы:
</p>
<div name="description_content" style="padding: 0 20px;">
{{ content.body|safe }}
</div>
</div>
{% endif %}
{% if content.description %}
<div style="border-bottom: 1px solid #f1f1f1;padding-bottom: 10px;margin-top: 0;">
<p style="font-weight: bold;
background: #f1f1f1;
padding: 10px;margin-top: 0;">
Описание задачи:
</p>
<div name="description_content" style="padding: 0 20px;">
{{ content.description|safe }}
</div>
</div>
{% endif %}
{% if content.resolve %}
<div name="resolve" style="border-bottom: 1px solid #f1f1f1;padding-bottom: 10px;display: none;margin-top: 10px;">
<p style="font-weight: bold;
background: #f1f1f1;
padding: 10px;
margin-top: 0;">
Пример решения:
<span style="font-weight: normal;
cursor: pointer;
color: cornflowerblue;
border-bottom: 1px dotted cornflowerblue;
float: right;"
onclick="$('[name=resolve]').fadeOut('slow');">
закрыть
</span>
</p>
<div style="padding: 0 20px;">
{{ content.resolve|safe }}
</div>
</div>
<p style="text-align: center;
width: 100%;
position: fixed;
bottom: 83px;
background: #f1f1f1;
padding: 10px;
margin: 0;
color: #ccc;
cursor: pointer;"
onclick="$('[name=resolve]').fadeIn('slow');">
<span>Посмотреть решение</span>
</p>
{% endif %}
{% if content.content %}
<div style="border-bottom: 1px solid #f1f1f1;padding-bottom: 10px;margin-top: 10px;">
<p style="font-weight: bold;
background: #f1f1f1;
padding: 10px;
margin-top: 0;">
Описание методов:
</p>
<div style="padding: 0 20px;" name="workshop_content">
{{ content.content|safe }}
</div>
</div>
{% endif %}
{% if content.variables %}
<div style="border-bottom: 1px solid #f1f1f1;padding-bottom: 10px;margin-top: 10px;">
<p style="font-weight: bold;
background: #f1f1f1;
padding: 10px;
margin-top: 0;">
Описание переменных:
</p>
<div style="padding: 0 20px;" name="workshop_variables">
{{ content.variables|safe }}
</div>
</div>
{% endif %}
{% if content.tools %}
<div style="border-bottom: 1px solid #f1f1f1;padding-bottom: 10px;margin-top: 10px;">
<p style="font-weight: bold;
background: #f1f1f1;
padding: 10px;
margin-top: 0;">
Используемые инструменты:
</p>
<div style="padding: 0 20px;" name="workshop_tools">
<ul style="padding: 0; list-style: none;">
{% for tool in content.tools %}
{% if tool.url %}
<a href="{{ tool.url }}" style="font-weight: normal;
cursor: pointer;
color: cornflowerblue;
border-bottom: 1px dotted cornflowerblue;" target="_blank">
{% endif %}
<li>
<img src="{{ tool.icon }}" alt="{{ tool.name }}" style="max-width: 20px;float:left;margin-right: 5px;"> {{ tool.name }}
{% if tool.description %}<span style=" color: #999; margin-left: 10px;
font-size: 13px;">{{ tool.description }}</span>{% endif %}
</li>
{% if tool.url %}
</a>
{% endif %}
{% endfor %}
</ul>
</div>
</div>
{% endif %}
</div>
<p style="text-align: center;
position: fixed;
bottom: 0;
width: 100%;
border-top: 1px dotted #ccc;
padding-top: 20px;
background: #ffc;
margin: 10px 0 0;
padding-bottom: 20px;">
<a href="/" target="_blank"><img src="/static/img/logo.png"></a>
</p>
</body>
</html>

@ -1,446 +0,0 @@
{% extends 'base_index.html' %}
{% load static %}
{% block page_title %}Профиль{% endblock %}
{% block title %}{% if in_user %}{{ in_user.get_short_name }}{% else %}{{ request.user.get_short_name }}{% endif %}{% endblock %}
<meta name="description" content="{% block head_description1 %}{{ in_user.in_role }} - {{ in_user.get_full_name }}{% endblock %}" />
<meta property="og:title" content="{% block head_title %}{{ in_user.in_role }} - {{ in_user.get_full_name }}{% endblock %}" />
<meta property="og:description" content="{% block head_description2 %}{{ NAME }}{% endblock %}" />
<meta property="og:image" content="{% block head_image %}{{ in_user.get_image_url }}{% endblock %}" />
{% block head %}
<link rel="stylesheet" href="/static/css/pie_chart.css" type="text/css" />
{% endblock %}
{% block content %}
<!-- main -->
<div class="col">
<!-- main header -->
<div class="bg-light lter b-b wrapper-md m-b-md" style="padding-bottom: 5px; padding-top:5px;">
<div class="row">
{% for key, values in achievements.items %}
{% for i in values %}
<a type="button" style="border-bottom: 0;" onclick="show_achievement('{{ i.id }}', '{{ i.title }}', '{{ i.text }}', '{{ i.achievement.image.url }}', '{{ i.achievement.border }}', '{{ i.achievement.background }}')">
<img src="{{ i.achievement.image.url }}" alt="{{ i.achievement.title }}" title="{{ i.achievement.title }}" class="m-b-xs" style="background:{{ i.achievement.background }};padding: 5px; border-radius:3px;margin: 5px;height: 25px;">
</a>
{% endfor %}
<span style="border: 1px dotted #999;
position: relative;
top: 2px;"></span>
{% endfor %}
</div>
</div>
<!-- main header -->
<div class="col-sm-5">
<div class="panel b-a">
<div class="panel panel-default" style="margin-bottom: 0; background: #fff;">
<div class="panel-heading b-b b-light font-bold">
<small class="text-muted">{% if in_user %}{% if in_user.unique_role %}<i class="glyphicon glyphicon-star" style="color:#fcb813;"></i> {{ in_user.unique_role }}{% else %}<i class="glyphicon glyphicon-check" style=" margin-right: 5px;"></i> {{ in_user.get_in_role_display }}{% endif %}
{% else %}{% if request.user.unique_role %}<i class="glyphicon glyphicon-star" style="color:#fcb813;"></i> {{ request.user.unique_role }}{% else %}<i class="glyphicon glyphicon-check" style=" margin-right: 5px;"></i>{{ request.user.get_in_role_display }}{% endif %}{% endif %}</small>
<span style="float: right; color: #666;"> {% if in_user %}
<small class="text-muted" style="{% if in_user.status == 'ON' %}color:green;{% endif %}font-weight: bold;">
{% if in_user.status == 'ON' %}<i class="glyphicon glyphicon-ok-sign" title="{{ request.user.get_status_display }}" style=" margin-right: 2px;"></i> {% else %}<i class="glyphicon glyphicon-time" style=" margin-right: 2px;"></i>{% endif %}
<span class="hidden-xs">{{ in_user.get_status_display }}</span></small>
{% else %}
<small class="text-muted" style="{% if request.user.status == 'ON' %}color:green;{% endif %}font-weight: bold;">
{% if request.user.status == 'ON' %}<i title="{{ request.user.get_status_display }}" class="glyphicon glyphicon-ok-sign" style=" margin-right: 2px;"></i> {% else %}<i class="glyphicon glyphicon-time" style=" margin-right: 2px;"></i>{% endif %}
<span class="hidden-xs">{{ request.user.get_status_display }}</span></small>
{% endif %}</span>
</div>
<div class="panel-body" style=" background: url({% if in_user %}{{ in_user.get_image_url }}{% else %}{{ request.user.get_image_url }}{% endif %}) no-repeat center center; min-height: 300px;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;">
</div>
</div>
</div>
<div class="panel b-a">
<div class="panel panel-default" style="margin-bottom: 0;">
<div class="panel-heading font-bold">
Основная информация <i class="glyphicon glyphicon-user" style="float: right; color:#333;"></i>
</div>
<div class="panel-body">
<h3 style="font-weight: bold;margin-top:0;text-align: left; margin-bottom: 0;" reloader_name="fname">{% if in_user %}{{ in_user.fname }}{% else %}{{ request.user.fname }}{% endif %}</h3>
<h3 style="font-weight: bold;text-align: left;margin-top: 5px; margin-bottom: 0;" reloader_name="name">{% if in_user %}{{ in_user.name }}{% else %}{{ request.user.name }}{% endif %}</h3>
<h3 style="font-weight: bold;text-align: left;margin-top: 5px; margin-bottom: 0;" reloader_name="oname">{% if in_user %}{{ in_user.oname }}{% else %}{{ request.user.oname }}{% endif %}</h3>
<h3 reloader_name="city" style="text-align: left;margin-top: 5px; margin-bottom: 0;font-size: 18px;">{% if in_user %}{{ in_user.city }}{% else %}{{ request.user.city }}{% endif %}</h3>
{% if not in_user %}<p style="text-align: left;margin-top: 5px; margin-bottom: 0;"><a type="button" onclick="set_settings_data()" style="color: blue;border-bottom: 1px dotted;">Изменить данные</a></p>{% endif %}
<hr>
<span style="color: #666;"> {% if in_user %}
<small class="text-muted">Регистрации: {{ in_user.date_joined }}</small>
{% else %}
<small class="text-muted">Регистрации: {{ request.user.date_joined }}</small>
{% endif %}</span>
</div>
</div>
</div>
{% if not in_user %}
<div class="panel b-a">
<div class="panel panel-default" style="margin-bottom: 0;">
<div class="panel-heading font-bold">
Настройки приватности <i class="glyphicon glyphicon-lock" style="float: right; color: #666;"></i>
</div>
<div class="panel-body">
<p style=" float: left;
width: 100%;
border-bottom: 1px dotted #ccc;
padding-bottom: 10px;">
<i class="glyphicon glyphicon-link" style="margin-top: 7px;"></i> <input id="foo" style=" color: #0099CC;
width: 239px;
border: 0;" readonly value="{{ DOMAIN }}/{{ request.user.interactive_key }}">
<button id="copy_unique_user_id" class="btn" type="button" data-clipboard-action="copy" data-clipboard-target="#foo" style="float: right;" onclick="show_system_message('Ссылка скопирована')">
<i class="glyphicon glyphicon-duplicate"></i> <span class="hidden-xs hidden-sm">Скопировать</span>
</button>
</p>
<div class="col-sm-10">
<label class="i-switch bg-success m-t-xs m-r" onclick="change_private('A')">
<input type="radio" name="switch" {% if request.user.private == 'A' %}checked=""{% endif %}>
<i></i>
</label><b>Виден всем</b><br>
<label class="i-switch bg-info m-t-xs m-r" onclick="change_private('U')">
<input type="radio" name="switch" {% if request.user.private == 'U' %}checked=""{% endif %}>
<i></i>
</label><b>Только пользователям</b><br>
<label class="i-switch bg-primary m-t-xs m-r" onclick="change_private('L')">
<input type="radio" name="switch" {% if request.user.private == 'L' %}checked=""{% endif %}>
<i></i>
</label><b>По прямой ссылке</b><br>
<label class="i-switch bg-danger m-t-xs m-r" onclick="change_private('B')">
<input type="radio" name="switch" {% if request.user.private == 'B' %}checked=""{% endif %}>
<i></i>
</label><b>Только мне</b><br>
</div>
</div>
</div>
</div>
{% endif %}
<div class="panel b-a">
<div class="panel panel-default" style="margin-bottom: 0;">
<div class="panel-heading font-bold">
Ваши курсы <span style="float: right; color: #666;white-space:nowrap;"><i class="glyphicon glyphicon-education" style="margin-right:2px;"></i> <span class="hidden-sm hidden-xs">Всего:</span> {{ courses|length }} <span class="visible-xs" style="font-weight:bold;">/</span> <span style="color: green;"><span class="hidden-sm hidden-xs">Пройдено:</span> {{ completed_courses }}</span></span>
</div>
<div class="panel-body">
{% for i in courses %}
<div style=" width: 100%;
float: left;
border-bottom: 1px solid #f1f1f1;
margin-bottom: 10px;
background: #fff;
padding: 15px;clear: both;">
<div style="float: left;width: 49%;padding-right: 1%;">
<div style="font-weight: bold;
font-size: 16px;
color: #000;
margin-bottom: 10px;">{{ i.title }}</div>
<div style=" margin-bottom: 15px;width: 100%;">
<div class="progress progress-sm progress-striped m-t-xs m-b" style=" margin-bottom: 0;
border-radius: 10px;
height: 15px;
line-height: 36px;">
<div class="progress-bar {% if i.progress == 100 %}bg-success{% else %}bg-warning{% endif %} text-black" data-toggle="tooltip" data-original-title="{{ i.progress }}" style="width: {{ i.progress }}%; min-width: 2.5em; line-height: 14px;
color: #fff;
font-size: 14px;
font-weight: bold;">{{ i.progress }} %</div>
</div>
</div>
<div style="width: 100%;">
<div style="float: left;width: 100%;"><a href="/courses/{{ i.course_id }}" class="btn btn-default" target="_blank" style="border-radius: 3px;width: 100%;">Страница курса</a></div>
</div>
</div>
{% if i.teacher %}
<div style="float: right;width: 50%;margin-top: 10px;">
<div style="float: right;">
<div class="text-center clearfix " style="border-radius: 0 0 5px 5px;padding-bottom: 10px;">
<img src="{{ i.teacher.get_image_url }}" alt="..." class="img-circle" style="height: auto;width: 60px;">
</div>
</div>
<div style="text-align: right;float: right;">
<p style="color: #70aadd; margin: 7px 0 0;">Ваш преподаватель</p>
<div style="font-weight: bold;font-size: 15px;">
<span>{{ i.teacher.fname }} {{ i.teacher.name }}</span><br>
<span>{{ i.teacher.oname }}</span>
</div>
<p><a href="/{{ i.teacher.interactive_key }}" target="_blank" style="color: #999;border-bottom: 1px dotted;">Профиль</a></p>
</div>
</div>
{% endif %}
</div>
{% empty %}
<h3 style="font-weight: bold;text-align: center;margin: 10px 0;">На изучении курсов нет</h3>
{% endfor %}
</div>
<div class="panel-footer" style="text-align: right;background: #f1f1f1;">
<a href="/courses/" target="_blank" class="auto" style="color: #999;border: 0;">
<i class="glyphicon glyphicon-th" style="margin-right: 5px;"></i>
<span>Наши курсы</span>
</a>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading font-bold">Ваши очки навыков <span style="float: right; color: #666;"><i class="glyphicon glyphicon-ok-sign"></i> {{ skills_size }}</span></div>
<!-- <a href="" class="text-muted m-t-sm m-l inline" ng-click="data=[40, 40, 20]"><i class="icon-pie-chart"></i></a> -->
<div class="text-center wrapper m-b-sm" style="width: 100%">
{% if skills %}
<div id="pieChart" class="chart" style="width: 100%;height: 250px;"></div>
{% else %}
<h3 style="font-weight: bold;text-align: center;margin: 10px 0;">Навыков не получено</h3>
{% endif %}
</div>
<ul class="list-group no-radius">
{% for key, value in skills.items %}
<li class="list-group-item" name="skill_row" skill_title="{{ key }}" skill_color="{{ value.color }}" skill_value={{ value.size }}>
<span class="pull-right"><b>{{ value.size }}</b> очков</span>
<span class="label font-normal text-white" style="background: {{ value.color }};font-size: 14px;">{% if value.icon %}<img src="{{ value.icon.url }}" style="margin-top: -1px;width: 15px;
height: 15px;
margin-right: 5px;">{% endif %}{{ key }}</span>
</li>
{% endfor %}
<li class="list-group-item" style="font-weight:bold;">
<span class="pull-right"><b>{{ skills_size }}</b> очков</span>
<!-- <span class="label bg-danger">5</span> -->
Итого:
</li>
</ul>
</div>
{% if documents %}
<div class="panel panel-default">
<div class="panel-heading font-bold">Документы <span style="float: right; color: #666;"><i class="glyphicon glyphicon-book" style="float: right; color: #666;"></i> {{ documents|length }}</span></div>
<ul class="list-group no-radius">
{% for doc in documents %}
{% if doc.file %}<a href="{{ doc.file.url }}" target="_blank">{% endif %}<li class="list-group-item">
<span class="pull-right"><b>{{ doc.get_status_display }}</b> </span>
<span class="label font-normal text-white" style="font-size: 14px;color: #333;">
<i class="glyphicon glyphicon-file" style="margin-top: -1px;width: 15px;height: 15px;margin-right: 5px;"></i>{{ doc.title }}
</span>
</li>{% if doc.file %}</a>{% endif %}
{% endfor %}
</ul>
</div>
{% endif %}
{% if b_bills %}
<div class="panel panel-default">
<div class="panel-heading font-bold">Счета <span style="float: right; color: #666;"><i class="glyphicon glyphicon-credit-card"></i> {{ b_bills|length }}</span></div>
<ul class="list-group no-radius">
<style>
li.green:hover{
background: #dff0d8;
}
</style>
{% for b in b_bills %}
{% if b.file %}<a href="{{ b.file.url }}" target="_blank">{% endif %}<li class="list-group-item green" {% if b.status == 'W' or b.status == 'P' or b.status == 'C' %}onclick="accept_bill({{ b.id }})"{% endif %}>
<span class="pull-right"><b>{% if b.status == 'F' %}<i class="glyphicon glyphicon-saved" style="margin-right: 2px;
color: green;"></i>{% endif %}{{ b.get_status_display }}</b> </span>
<p class="label font-normal text-white" style="font-size: 14px;color: #333;white-space:normal;text-shadow: 0 0 0;">
<i class="{% if b.gift %}glyphicon glyphicon-gift{% else %}glyphicon glyphicon-barcode{% endif %}" style="margin-top: -1px;width: 15px;height: 15px;margin-right: 5px;"></i>{{ b.get_name }}
</p>
</li>{% if bill.file %}</a>{% endif %}
{% endfor %}
</ul>
</div>
{% endif %}
</div>
<div class="col-sm-7">
<div class="panel b-a panel-default">
<div class="panel-heading b-b b-light font-bold">
Ваши дипломы <span style="float: right; color: #666;"><i class="glyphicon glyphicon-briefcase"></i> {{ diploms|length }}</span>
</div>
<ul class="list-group list-group-lg no-bg auto">
{% for i in diploms %}
<li class="list-group-item clearfix">
<span class="pull-left avatar m-r">
<img src="{{ i.material.icon.url }}" class="no-radius" alt="..." style="max-width:150px;">
<i class="on b-white bottom"></i>
</span>
<span class="clear">
<span>Успешное прохождение курса: {{ i.material.course.get_title }}</span><br><br>
<small class="text-muted clear text-ellipsis">Выдан {{ i.date }}</small>
</span>
<div class="btn btn-default btn-xs btn-info fancy" href="#diplom" onclick="load_diplome_cart('{{ i.in_image.url }}', '{{ i.material.course.get_title }}', '{{ i.key }}', '{{ i.date }}')">Посмотреть диплом</div>
</li>
{% empty %}
<li class="list-group-item clearfix"><h3 style="font-weight: bold;text-align: center;margin: 10px 0;">Дипломов не получено</h3></li>
{% endfor %}
</ul>
</div>
<div class="panel b-a panel-default">
<div class="panel-heading b-b b-light font-bold">
Ваши достижения <span style="float: right; color: #666;"><i class="glyphicon glyphicon-star"></i> {{ got_achievements }}</span>
</div>
<div class="panel-body text-center p-t-none">
{% for key, values in achievements.items %}
<div class="panel b-none m-b-xs">
<div class="panel-heading p-none text-left no-bg">
{{ key }}
</div>
<div class="panel-body text-center p-l-none p-r-none">
{% for i in values %}
<a type="button" style="border-bottom: 0;" onclick="show_achievement('{{ i.id }}', '{{ i.title }}', '{{ i.text }}', '{{ i.achievement.image.url }}', '{{ i.achievement.border }}', '{{ i.achievement.background }}')">
<div class="m-b inline m-r-lg v-top">
<div class="thumb-xl">
<img src="{{ i.achievement.icon.url }}" alt="..." class="m-b-xs" style=" width: 125px;">
<small class="block"><span class="fa fa-check-circle text-success"></span> {{ i.achievement.title }}</small>
</div>
</div>
</a>
{% endfor %}
</div>
</div>
{% empty %}
<h3 style="text-align: center; font-weight: bold">Достижений еще нет</h3>
{% endfor %}
</div>
<div class="panel-footer" style="text-align: right;background: #f1f1f1;">
<a href="/courses/achievements/" target="_blank" class="auto" style="color: #999;border: 0;">
<i class="glyphicon glyphicon-th" style="margin-right: 5px;"></i>
<span>Доступные достижения</span>
</a>
</div>
</div>
<div class="panel b-a panel-default">
<div class="panel-heading b-b b-light font-bold">
Вопросы на <a href="/forum" target="_blank" style="color: #70aadd;padding-bottom: 5px;">форуме</a> <span style="float: right; color: #666;"><i class="glyphicon glyphicon-question-sign"></i> {{ forum_ask|length }}</span>
</div>
<div class="panel-body text-center p-t-none">
{% for key, values in forum_ask.items %}
<div class="panel b-none m-b-xs">
<div class="panel-heading p-none text-left no-bg">
{{ key }}
</div>
<div class="panel-body text-center p-l-none p-r-none">
{% for i in values %}
<a type="button" onclick="show_achievement('{{ i.id }}', '{{ i.title }}', '{{ i.text }}', '{{ i.achievement.image.url }}', '{{ i.achievement.border }}', '{{ i.achievement.background }}')">
<div class="m-b inline m-r-lg v-top">
<div class="thumb-xl">
<img src="{{ i.achievement.icon.url }}" alt="..." class="m-b-xs" style=" width: 125px;">
<small class="block"><span class="fa fa-check-circle text-success"></span> {{ i.achievement.title }}</small>
</div>
</div>
</a>
{% endfor %}
</div>
</div>
{% empty %}
<h3 style="text-align: center; font-weight: bold">Вопросов еще не было</h3>
{% endfor %}
</div>
<div class="panel-footer" style="text-align: right;background: #f1f1f1;">
<a href="/library/articles/" class="auto" style="color: #999;border: 0;">
<i class="glyphicon glyphicon-ok-circle" style="margin-right: 5px;"></i>
<span>Форум</span>
</a>
</div>
</div>
<div class="panel b-a panel-default">
<div class="panel-heading b-b b-light font-bold">
Ответы на <a href="/forum" target="_blank" style="color: #70aadd;padding-bottom: 5px;">форуме</a> <span style="float: right; color: #666;"><i class="glyphicon glyphicon-ok-circle" style="margin-right:2px;"></i> <span class="hidden-sm hidden-xs">Всего: </span>{{ forum_ans.all|length }} <span style="color: green;"><span class="hidden-sm hidden-xs">Лучшие:</span> {{ forum_ans.best }}</span></span>
</div>
<div class="panel-body text-center p-t-none">
{% for key, values in forum_ans.all.items %}
<div class="panel b-none m-b-xs">
<div class="panel-heading p-none text-left no-bg">
{{ key }}
</div>
<div class="panel-body text-center p-l-none p-r-none">
{% for i in values %}
<a type="button" onclick="show_achievement('{{ i.id }}', '{{ i.title }}', '{{ i.text }}', '{{ i.achievement.image.url }}', '{{ i.achievement.border }}', '{{ i.achievement.background }}')">
<div class="m-b inline m-r-lg v-top">
<div class="thumb-xl">
<img src="{{ i.achievement.icon.url }}" alt="..." class="m-b-xs" style=" width: 125px;">
<small class="block"><span class="fa fa-check-circle text-success"></span> {{ i.achievement.title }}</small>
</div>
</div>
</a>
{% endfor %}
</div>
</div>
{% empty %}
<h3 style="text-align: center; font-weight: bold">Ответов еще не было</h3>
{% endfor %}
</div>
<div class="panel-footer" style="text-align: right;background: #f1f1f1;">
<a href="/library/articles/" class="auto" style="color: #999;border: 0;">
<i class="glyphicon glyphicon-ok-circle" style="margin-right: 5px;"></i>
<span>Форум</span>
</a>
</div>
</div>
<div class="panel b-a panel-default">
<div class="panel-heading b-b b-light font-bold">
Прочитанные <a href="/library/articles/" target="_blank" style="color: #70aadd;padding-bottom: 5px;">статьи</a> <span style="float: right; color: #666;"><i class="glyphicon glyphicon-book"></i> {{ articles|length }}</span>
</div>
<div class="panel-body text-center p-t-none" style="max-height: 300px;overflow: hidden;
overflow-y: auto;padding-top: 10px !important;">
{% for article in articles %}
<div class="panel b-none m-b-xs" style=" background: #f1f1f1;
padding: 0 5px;
border-radius: 3px;">
<div class="panel-heading p-none text-left no-bg" style=" font-weight: bold;">
{{ article.title }}
</div>
</div>
{% empty %}
<h3 style="text-align: center; font-weight: bold">Нет прочитанного</h3>
{% endfor %}
</div>
<div class="panel-footer" style="text-align: right;background: #f1f1f1;">
<a href="/library/articles/" class="auto" style="color: #999;border: 0;">
<i class="glyphicon glyphicon-book" style="margin-right: 5px;"></i>
<span>База знаний</span>
</a>
</div>
</div>
<!-- -->
</div>
</div>
<!-- / main -->
<!-- right col -->
{% include 'right_site.html' %}
{% endblock %}
{% block js %}
<script src="/static/js/pie_chart.js"></script>
<script src="/static/js/profile.js"></script>
<script src="/static/js/clipboard.min.js"></script>
<script>
$(function(){
{% if skills %}
result = [];
var skills = $('li[name=skill_row]');
for(var i=0;i<skills.length;i++){result.push({'title': $(skills[i]).attr('skill_title'), 'value': parseInt($(skills[i]).attr('skill_value'), 10), 'color':$(skills[i]).attr('skill_color')})}
$("#pieChart").drawPieChart(result);
{% endif %}
new Clipboard('#copy_unique_user_id');
});
</script>
<script> $('.fancy').fancybox();</script>
<div class="popup col-sm-6" id="diplom">
<div class="h3">
<p class="main">Просмотр диплома</p>
<p> о успешном завершении курса<br>
<span name="diploma_course"></span></p>
<p>Диплом #<span name="diploma_id"></span> от <span name="diploma_f_date"></span></p>
</div>
<div>
<img src="/static/img/diplom_inner.png" alt="" class="inner" name="diploma_image" style="max-width: 500px; height: auto;">
<a type="button" class="btn m-b-xs btn-sm btn-default btn-addon" href="" name="diploma_link" target="_blank"><i class="fa fa-file-pdf-o"></i>Скачать диплом</a>
</div>
</div>
{% endblock %}

@ -1,85 +0,0 @@
{% extends 'base_index.html' %}
{% load course_filter %}
{% block title %}Отчет по прохождению{% endblock %}
{% block content %}
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
{% for m in map %}
<li role="presentation"><a href="#home{{ m.id }}" aria-controls="home" role="tab" data-toggle="tab">{{ m.title }}<span class="label label-info" style="margin-left: 10px;" name="table_length_{{ m.id }}">0</span></a></li>
<script>
if (!window.courses){
window.courses = {};
}
window.courses[{{ m.id }}] = []
</script>
{% endfor %}
<li></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
{% for m in map %}
<div role="tabpanel" class="tab-pane" id="home{{ m.id }}">
<table class="table table-hover">
<tr style="background: #333;">
{% for theme in m.themes %}
<td>
<div
{% if theme.get_type.flag == 'Ex' %}
class="label label-success"
{% else %}
{% if theme.get_type.flag == 'B' %}
class="label label-default"
{% else %}
{% if theme.get_type.flag == 'M' %}
class="label label-primary"
{% else %}
{% if theme.get_type.flag == 'P' or theme.get_type.flag == 'E' %}
class="label label-warning"
{% endif %}
{% endif %}
{% endif %}
{% endif %}
>
<a href="{{ DOMAIN }}courses/{{ m.id }}#theme{{ theme.id }}" target="_blank" style="color:#fff;">
{{ theme.sort }}
</a>
</div>
</td>
{% endfor %}
</tr>
<tbody name="table_content_{{ m.id }}">
</tbody>
</table>
</div>
{% endfor %}
</div>
<div class="container">
<div name="prestart">
<button type="button" class="btn btn-success btn-lg" onclick="create_report()">Запустить отчет</button>
<div class="input-group date">
<input type="text" class="form-control" placeholder="Дата разбивки" name="xday" ><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
</div>
</div>
<div name="loader" style="display: none;">
<p style="text-align: center;">Получение информации.<br>Осталось:</p>
<p name="persent" style=" text-align: center;
font-size: 30px;
font-weight: bold;"></p>
<div class="ball"></div>
<div class="ball"></div>
<div class="ball"></div>
<div class="ball"></div>
<div class="ball"></div>
<div class="ball"></div>
<div class="ball"></div>
</div>
</div>
</div>
{% endblock %}
{% block js %}
<script src="/static/js/apis/progress.js"></script>
{% endblock %}

@ -1,55 +0,0 @@
{% extends 'reports/base_index.html' %}
{% block title %}Отчеты{% endblock %}
{% block page_title %}Отчеты{% endblock %}
{% block content %}
<h3 style="margin-left: 20px;font-weight: bold;">
<i class="glyphicon glyphicon-education"></i> ДЗ
</h3>
<table class="table table-hover" style="background: #ffc;">
<tr style="font-weight: bold;background: #ccc;">
<td>Курс</td>
<td>Работ</td>
<td>В процессе</td>
<td>Без задержек</td>
<td>Просрочено</td>
<td>От</td>
</tr>
{% for key, course in courses.items %}
<tr>
<td style="border-right: 1px dotted #ccc;">{{ course.title }}</td>
<td style="border-right: 1px dotted #ccc;">{{ course.students }}</td>
<td style="border-right: 1px dotted #ccc;">{{ course.process }}</td>
<td style="border-right: 1px dotted #ccc;">{{ course.success }}</td>
<td style="border-right: 1px dotted #ccc;">{{ course.expired }}</td>
<td style="border-right: 1px dotted #ccc;">{{ course.date }}</td>
</tr>
{% endfor %}
</table>
<h3 style="margin-left: 20px;margin-top:40px;font-weight: bold;border-top: 1px dotted #ccc;padding-top: 30px;">
<i class="glyphicon glyphicon-equalizer"></i> Активность пользователей
</h3>
<table class="table table-hover" style="background: #ffc;">
<tr style="font-weight: bold;background: #ccc;">
<td>Всего пользователей</td>
<td>Не активных</td>
<td>Оплатившие</td>
<td>Без активности <i>День</i></td>
<td>Без активности <i>3 Дня</i></td>
<td>Без активности <i>Неделю</i></td>
<td>Без активности <i>Месяц</i></td>
</tr>
<tr>
<td style="border-right: 1px dotted #ccc;">{{ users.all }}</td>
<td style="border-right: 1px dotted #ccc;">{{ users.no_active.int }} <i>[{{ users.no_active.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.all.int }} <i>[{{ users.bought.all.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.day.int }} <i>[{{ users.bought.day.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.three.int }} <i>[{{ users.bought.three.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.week.int }} <i>[{{ users.bought.week.proc }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">{{ users.bought.month.int }} <i>[{{ users.bought.month.proc }}%]</i></td>
</tr>
</table>
<h3 style="margin-left: 20px;margin-top:40px;font-weight: bold;border-top: 1px dotted #ccc;padding-top: 30px;"><i class="glyphicon glyphicon-signal"></i> Другие отчеты</h3>
<ul class="list-group">
<a href="/management/progress_report/"><li class="list-group-item">Прогресс студентов</li></a>
</ul>
{% endblock %}

@ -1,222 +0,0 @@
{% load static %}
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>{% block title %}{% endblock %} - Точка кода</title>
<link rel="shortcut icon" href="/static/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="/static/img/favicon.ico" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta name="description" content="Школа программирования - Точка Кода." />
<meta property="og:title" content="Точка Кода" />
<meta property="og:description" content="Школа программирования" />
<meta property="og:image" content="{{ DOMAIN }}static/img/3818cc0ec1.png" />
<link rel="stylesheet" href="/static/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/animate.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/font-awesome.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/simple-line-icons.css" type="text/css" />
<link rel="stylesheet" href="/static/css/font.css" type="text/css" />
<link rel="stylesheet" href="/static/css/app.css" type="text/css" />
<link rel="stylesheet" href="/static/css/aside.css" type="text/css" />
<link rel="stylesheet" href="/static/css/kladr.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/bootstrap-datepicker.min.css" type="text/css" />
<link rel="stylesheet" href="/static/css/bootstrap-datepicker.standalone.min.css" type="text/css" />
<link type="text/css" href="/static/css/csshake.min.css">
<link type="text/css" href="/static/css/jquery-ui.structure.min.css">
<link type="text/css" href="/static/css/jquery-ui.min.css">
<link href="/static/css/jquery.Jcrop.css" rel="stylesheet" />
<script type="text/javascript" src='/static/js/jquery.min.js'></script>
<script src="/static/js/jquery-ui.min.js"></script>
<script type="text/javascript" src='/static/js/bootstrap.min.js'></script>
<script src="//cdn.ckeditor.com/4.5.6/standard/ckeditor.js"></script>
<script type="text/javascript" src='/static/js/tools.js'></script>
{% block head %}
{% endblock %}
</head>
<body>
<div class="app app-header-fixed ">
<!-- header -->
<header id="header" class="app-header navbar " role="menu">
<!-- navbar header -->
<div class="navbar-header bg-info dker" style="min-width: 235px;">
{% if request.user.is_authenticated %}
<button class="pull-right visible-xs " target=".navbar-collapse" style="padding: 12px 17px;">
<a href="/access/logout/"><i class="glyphicon glyphicon-log-out"></i></a>
</button>
<button class="pull-right visible-xs " target=".navbar-collapse" style="padding: 10px;">
<a href="/access/profile/" class="pull-right visible-xs ">
<span class="w-auto-folded avatar thumb-xs">
<img src="{{ request.user.get_image_url }}" class="img-circle" alt="..." reloader_name="avatar">
</span>
</a>
</button>
<!-- / navbar right -->
{% else %}
<button class="pull-right visible-xs " target=".navbar-collapse">
<a type="button" data-toggle="modal" data-target="#myModal1" ui-sref="access.signin"><i class="glyphicon glyphicon-log-out"></i></a>
</button>
<button class="pull-right visible-xs " target=".navbar-collapse">
<a type="button" data-toggle="modal" data-target="#myModal" ui-sref="access.signin"><i class="glyphicon glyphicon-plus"></i></a>
</button>
{% endif %}
<!-- brand -->
<a href="/" class="navbar-brand text-lt" style="padding-right: 0; padding-left: 10px;">
<img src="/static/img/logo.png" alt="." class="" style="width: 200px;">
</a>
<!-- / brand -->
</div>
<!-- / navbar header -->
<!-- navbar collapse -->
<div class="collapse navbar-collapse box-shadow bg-info dk">
<h2 style=" float: left;
color: #333;
font-weight: bold;
margin: 7px 0 7px 20px;">Кабинет «Отчеты»</h2>
</div>
<!-- / navbar collapse -->
</header>
<!-- / header -->
{% block asside %}
<aside id="aside" class="app-aside hidden-xs bg-dark" style="background: #3a3f51;">
<div class="aside-wrap" style=" position: fixed;
width: 200px;">
<div class="navi-wrap">
<!-- user -->
<div class="clearfix hidden-xs text-center" id="aside-user">
<div class="dropdown wrapper">
<a href="#">
<span class="clear">
<span class="block m-t-sm">
<strong class="font-bold text-lt" reloader_name="user_name">{{ request.user.get_short_name }}</strong>
</span>
<span class="text-muted text-xs block">{% if request.user.unique_role %}<i class="glyphicon glyphicon-star" style="color:#fcb813;"></i> {{ request.user.unique_role }}{% else %}{{ request.user.get_in_role_display }}{% endif %}</span>
</span>
</a>
</div>
</div>
<!-- / user -->
<!-- nav -->
<div name="big_count" style=" padding: 20px;
color: #000;
background: #ffc;
font-weight: bold;
font-size: 70px; text-align: center;
margin-bottom: 25px;
border-top: 5px solid #ff1;
border-bottom: 5px solid #ff1;">
<span name="big_count_now" style="color: {% if get_now_success_hw > get_second_success_hw %}green{% else %}red{% endif %};">{{ get_now_success_hw }}</span>*
<span name="big_count_old" style="font-size: 40px;">{{ get_second_success_hw }}</span>**
<p style=" font-size: 12px;
font-weight: normal;">*Сдано ДЗ за текущий месяц по всей системе</p>
<p style=" font-size: 12px;
font-weight: normal;">**Сдано ДЗ за прошлый месяц по всей системе</p>
</div>
<nav ui-nav="" class="navi clearfix" style="position: fixed;width: 200px;">
{% include 'reports/menu.html' %}
</nav>
<div style="top: 50px;
text-align: right;
position: fixed;
left: 175px; cursor: pointer;" onclick="change_hide_vector1()" name="hide_icon1">
<i class="glyphicon glyphicon-chevron-left" style="background: #666;
padding: 15px 5px;
color: #ccc;
border-radius: 5px 0 0 5px;"></i>
</div>
</div>
</div>
</aside>
{% endblock %}
<div style="top: 50px;
text-align: right;
position: fixed;
z-index: 200;
left: 0;display: none; cursor: pointer;" onclick="change_hide_vector2()" name="hide_icon2">
<i class="glyphicon glyphicon-chevron-right" style="background: #666;
padding: 15px 5px;
color: #ccc;
border-radius: 0 5px 5px 0;z-index: 2000;"></i>
</div>
<!-- content -->
<div id="content" class="app-content" role="main">
<div class="app-content-body ">
<div class="hbox hbox-auto-xs hbox-auto-sm">
{% block content %}
{% endblock %}
</div>
</div>
{% block js %}
{% endblock %}
</div>
</div>
<!-- / content -->
<script type="text/javascript" src="/static/js/bootstrap-datepicker.min.js"></script>
<script type="text/javascript" src="/static/js/bootstrap-datepicker.ru.min.js"></script>
<script type="text/javascript" src='/static/js/regex_check.js'></script>
<script>
function change_hide_vector1() {
$('[name=hide_icon1]').fadeOut();
$('[name=hide_icon2]').fadeIn();
$('#aside').fadeOut(function () {
$('#content').css('margin-left', '10px')
})
}
function change_hide_vector2() {
$('[name=hide_icon1]').fadeIn();
$('[name=hide_icon2]').fadeOut();
$('#aside').fadeIn()
$('#content').css('margin-left', '200px')
}
$('.input-group.date').datepicker({
todayBtn: true,
language: "ru",
orientation: "bottom auto",
keyboardNavigation: true,
autoclose: true,
toggleActive: true,
defaultViewDate: { year: 2016, month: 05, day: 01 }
});
function big_count_now(){
$.ajax({
url: '/management/reports_api/now_success_hw/',
befor: function () {
$('[name="big_count_now"]').html('<img src="/static/img/preloader.gif">');
},
success: function(data){
$('[name="big_count_now"]').html(data['data']);
}
});
}
function big_count_old(){
$.ajax({
url: '/management/reports_api/now_second_hw/',
befor: function () {
$('[name="big_count_old"]').html('<img src="/static/img/preloader.gif">');
},
success: function(data){
$('[name="big_count_old"]').html(data['data']);
}
});
}
setInterval(function() {
big_count_now();
big_count_old();
}, 200000);
</script>
</body>
</html>

@ -1,81 +0,0 @@
{% extends 'reports/base_index.html' %}
{% load course_filter %}
{% block title %}Отчет по прохождению{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
<!-- Tab panes -->
<div>
<div class="input-group date" style="width: 40%;float: left;">
<input type="text" class="form-control" placeholder="ОТ" name="fday" style=" border-radius: 0;"><span class="input-group-addon" style=" border-radius: 0;"><i class="glyphicon glyphicon-th" style=" border-radius: 0;"></i></span>
</div>
<div class="input-group date" style="width: 40%;float: left;">
<input type="text" class="form-control" placeholder="ДО" name="sday" style=" border-radius: 0;"><span class="input-group-addon" style=" border-radius: 0;"><i class="glyphicon glyphicon-th" style=" border-radius: 0;"></i></span>
</div>
<div style="text-align: center; width: 20%;display: none; padding: 5px;
background: #ffc;float: left;" name="preloader">
<img src="/static/img/preloader.gif" style="margin-right: 5px;">
<b><span name="preload_status"></span></b>
</div>
<button name="load_button" style="float: left;width: 20%; border-radius: 0;" class="btn btn-green" onclick="start_load()">Выгрузить</button>
</div>
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
{% for course, values in courses.items %}
<li role="presentation" onclick="window.course_id = {{ values.id }};"><a href="#{{ values.id }}" aria-controls="{{ values.id }}" role="tab" data-toggle="tab">
{{ course }}
<span class="label label-info" style="margin-left: 10px;" name="course_{{ values.id }}_length">{{ values.users|length }}</span></a> </li>
{% endfor %}
</ul>
<!-- Tab panes -->
<div class="tab-content">
{% for course, values in courses.items %}
<div role="tabpanel" class="tab-pane" id="{{ values.id }}">
<table width="100%">
<tr>{% for token in values.map %}<a href=""><td style="height: 5px;background: #ffc;border-right: 1px solid #333;"></td></a>{% endfor %}</tr>
<script>window.course_{{ values.id }} = {{ values.users|length }}</script>
{% for user in values.users %}<tr>
{% for token in values.map %}<td course="{{ values.id }}" s_date="" f_date="" tp="" point="{{ values.id }}_{{ user }}_{{ token.token }}" style="height: 2px;background: #ccc;display: none;border-right: 1px solid #999;"></td>{% endfor %}</tr>{% endfor %}
</table>
</div>
{% endfor %}
</div>
</div>
{% endblock %}
{% block js %}
<script>
$(function () {
$('.input-group.date').datepicker({
todayBtn: true,
language: "ru",
orientation: "top center",
keyboardNavigation: false,
autoclose: true,
toggleActive: true,
format: 'yyyymmdd',
defaultViewDate: { year: 1990, month: 11, day: 18 }
});
$( document.body ).on( "change", "[name=fday]", function( event ) {
console.log($('[name=fday]').val());
window.from_date = $('[name=fday]').val().split(".").join("");
change_progress_color()
});
$( document.body ).on( "change", "[name=sday]", function( event ) {
console.log($('[name=sday]').val());
window.to_date = $('[name=sday]').val().split(".").join("");
change_progress_color()
});
})
</script>
<script src="/static/js/tools.js"></script>
<script src="/static/js/apis/progress.js"></script>
{% endblock %}

@ -1,149 +0,0 @@
{% extends 'reports/base_index.html' %}
{% load course_filter %}
{% block title %}Бесплатная неделя{% endblock %}
{% block page_title %}Бесплатная неделя{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
{% if title %}
<p style=" font-weight: bold;
font-size: 30px;
margin-left: 15px;
padding-top: 10px;"><a href="/management/reports/freeweek/"><i class="glyphicon glyphicon-arrow-left"></i> Назад</a></p>
{% endif %}
<h3 style="margin-left: 20px;margin-top:20px;font-weight: bold;border-top: 1px dotted #ccc;padding-top: 30px;">
<i class="glyphicon glyphicon-equalizer"></i> {% if title %}{{ title }}{% else %}Активность пользователей{% endif %}
</h3>
{% if not title %}
<table class="table table-hover" style="background: #ffc;">
<tr style="font-weight: bold;background: #ccc;">
<td>Всего пользователей</td>
<td>Прошли активацию</td>
<td>Java <i>[ {{ java.all }} ]</i></td>
<td>Web <i>[ {{ web.all }} ]</i></td>
<td>Android <i>[ {{ android.all }} ]</i></td>
<td>C# <i>[ {{ csh.all }} ]</i></td>
</tr>
<tr>
<td style="border-right: 1px dotted #ccc;">{{ all }}</td>
<td style="border-right: 1px dotted #ccc;">{{ active.count }} <i>[{{ active.persent }}%]</i></td>
<td style="border-right: 1px dotted #ccc;">
Проходят обучение: {{ java.in.count }}<br>
Получили домашку: {{ java.in_hw }}<br>
Сдали домашку: {{ java.out_hw }}<br>
</td>
<td style="border-right: 1px dotted #ccc;">
Проходят обучение: {{ web.in.count }}<br>
Получили домашку: {{ web.in_hw }}<br>
Сдали домашку: {{ web.out_hw }}<br>
</td>
<td style="border-right: 1px dotted #ccc;">
Проходят обучение: {{ android.in.count }}<br>
Получили домашку: {{ android.in_hw }}<br>
Сдали домашку: {{ android.out_hw }}<br>
</td>
<td style="border-right: 1px dotted #ccc;">
Проходят обучение: {{ csh.in.count }}<br>
Получили домашку: {{ csh.in_hw }}<br>
Сдали домашку: {{ csh.out_hw }}<br>
</td>
</tr>
<tr>
<td></td>
<td></td>
<td><a href="/management/reports/freeweek/?price={{ java.id }}" style="color: #00bdff;border-bottom: 1px dotted #00bdff;">Открыть конкретику</a></td>
<td><a href="/management/reports/freeweek/?price={{ web.id }}" style="color: #00bdff;border-bottom: 1px dotted #00bdff;">Открыть конкретику</a></td>
<td><a href="/management/reports/freeweek/?price={{ android.id }}" style="color: #00bdff;border-bottom: 1px dotted #00bdff;">Открыть конкретику</a></td>
<td><a href="/management/reports/freeweek/?price={{ csh.id }}" style="color: #00bdff;border-bottom: 1px dotted #00bdff;">Открыть конкретику</a></td>
</tr>
</table>
{% else %}
<table class="table table-hover" style="background: #ffc;">
<tr style="font-weight: bold;background: #ccc;">
<td style="border-right: 1px dotted #fff;">ФИО</td>
<td style="border-right: 1px dotted #fff;">Телефон</td>
<td style="border-right: 1px dotted #fff;">Email</td>
<td style="border-right: 1px dotted #fff;"> --- </td>
<td style="border-right: 1px dotted #fff;">Дата открытия доступа</td>
<td style="border-right: 1px dotted #fff;"> --- </td>
<td style="border-right: 1px dotted #fff;"> --- </td>
<td style="border-right: 1px dotted #fff;">Дата завершения доступа</td>
<td style="border-right: 1px dotted #fff;"> --- </td>
</tr>
<tr style="font-weight: bold;background: #ccc;">
<td colspan="9">Весь список [{{ b_in|length }}]</td>
</tr>
{% for bill in b_in %}
<tr>
<td style="border-right: 1px dotted #ccc;"><b>{{ bill.user.id }}:{{ bill.user.get_full_name }}</b></td>
<td style="border-right: 1px dotted #ccc;">{{ bill.user.get_phone }}</td>
<td style="border-right: 1px dotted #ccc;">{{ bill.user.email }}</td>
<td style="border-right: 1px dotted #ccc;"> --- </td>
<td style="border-right: 1px dotted #ccc;"><script>window.user_{{ bill.user.id }}_s = '{{ bill.finish_date }}'</script>{{ bill.finish_date }}</td>
<td style="border-right: 1px dotted #ccc;"> --- </td>
<td style="border-right: 1px dotted #ccc;"> --- </td>
<td style="border-right: 1px dotted #ccc;"><script>window.user_{{ bill.user.id }}_f = '{{ bill.fire_date }}'</script>{{ bill.fire_date }}</td>
<td style="border-right: 1px dotted #ccc;"> --- </td>
</tr>
{% endfor %}
<tr style="font-weight: bold;background: #ccc;">
<td colspan="9">Получили ДЗ [{{ in_hw|length }}]</td>
</tr>
<tr style="background: #f1f1f1;">
<td style="border-right: 1px dotted #fff;">ФИО</td>
<td style="border-right: 1px dotted #fff;">Телефон</td>
<td style="border-right: 1px dotted #fff;">Email</td>
<td style="border-right: 1px dotted #fff;">Точка нахождения</td>
<td style="border-right: 1px dotted #fff;">Дата открытия доступа</td>
<td style="border-right: 1px dotted #fff;"><b>Дата получения задания</b></td>
<td style="border-right: 1px dotted #fff;"> --- </td>
<td style="border-right: 1px dotted #fff;">Дата завершения доступа</td>
<td style="border-right: 1px dotted #fff;">Попыток сдачи</td>
</tr>
{% for h in in_hw %}
<tr>
<td style="border-right: 1px dotted #ccc;"><b>{{ h.student.id }}:{{ h.student.get_full_name }}</b></td>
<td style="border-right: 1px dotted #ccc;">{{ h.student.get_phone }}</td>
<td style="border-right: 1px dotted #ccc;">{{ h.student.email }}</td>
<td style="border-right: 1px dotted #ccc;">{{ h.material.theme.sort }}:<a href="/courses/{{ h.material.course.id }}?no_current={{ h.material.theme.id }}" target="_blank" style="color: #00bdff;
border-bottom: 1px dotted #00bdff;">{{ h.material.get_title }}</a></td>
<td style="border-right: 1px dotted #ccc;"><script>document.write(window.user_{{ h.student.id }}_s)</script></td>
<td style="border-right: 1px dotted #ccc;">{{ h.date }}</td>
<td style="border-right: 1px dotted #ccc;"> --- </td>
<td style="border-right: 1px dotted #ccc;"><script>document.write(window.user_{{ h.student.id }}_f)</script></td>
<td style="border-right: 1px dotted #ccc;">{{ h.get_trues_length }}</td>
</tr>
{% endfor %}
<tr style="font-weight: bold;background: #ccc;">
<td colspan="9">Сдали ДЗ [{{ out_hw|length }}]</td>
</tr>
<tr style="background: #f1f1f1;">
<td style="border-right: 1px dotted #fff;">ФИО</td>
<td style="border-right: 1px dotted #fff;">Телефон</td>
<td style="border-right: 1px dotted #fff;">Email</td>
<td style="border-right: 1px dotted #fff;">Точка нахождения</td>
<td style="border-right: 1px dotted #fff;">Дата открытия доступа</td>
<td style="border-right: 1px dotted #fff;">Дата получения задания</td>
<td style="border-right: 1px dotted #fff;"><b>Дата сдачи задания</b></td>
<td style="border-right: 1px dotted #fff;">Дата завершения доступа</td>
<td style="border-right: 1px dotted #fff;">Попыток сдачи</td>
</tr>
{% for h in out_hw %}
<tr>
<td style="border-right: 1px dotted #ccc;"><b>{{ h.student.id }}:{{ h.student.get_full_name }}</b></td>
<td style="border-right: 1px dotted #ccc;">{{ h.student.get_phone }}</td>
<td style="border-right: 1px dotted #ccc;">{{ h.student.email }}</td>
<td style="border-right: 1px dotted #ccc;">{{ h.material.theme.sort }}:<a href="/courses/{{ h.material.course.id }}?no_current={{ h.material.theme.id }}" target="_blank" style="color: #00bdff;
border-bottom: 1px dotted #00bdff;">{{ h.material.get_title }}</a> </td>
<td style="border-right: 1px dotted #ccc;"><script>document.write(window.user_{{ h.student.id }}_s)</script></td>
<td style="border-right: 1px dotted #ccc;">{{ h.date }}</td>
<td style="border-right: 1px dotted #ccc;">{{ h.f_date }}</td>
<td style="border-right: 1px dotted #ccc;"><script>document.write(window.user_{{ h.student.id }}_f)</script></td>
<td style="border-right: 1px dotted #ccc;">{{ h.get_trues_length }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
{% endblock %}
{% block js %}
{% endblock %}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save