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

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 import string
from courses.models import Vertex, Course from courses.models import Vertex, Course
from storage.models import Storage 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.base_user import AbstractBaseUser, BaseUserManager
from django.contrib.auth.models import PermissionsMixin, Group from django.contrib.auth.models import PermissionsMixin, Group
@ -26,11 +27,11 @@ class Invite(models.Model):
class Account(models.Model): class Account(models.Model):
GENDER_CHOICES = { GENDER_CHOICES = (
(0, 'undefined'), (0, 'undefined'),
(1, 'male'), (1, 'male'),
(2, 'female'), (2, 'female'),
} )
b_day = models.DateField(blank=True, null=True) b_day = models.DateField(blank=True, null=True)
city = models.CharField(max_length=63, null=True, blank=True) city = models.CharField(max_length=63, null=True, blank=True)
gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0) gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0)
@ -77,7 +78,7 @@ class CustomUserManager(BaseUserManager):
email = self.normalize_email(email) 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) is_superuser=is_superuser, date_joined=date_joined, last_login=last_login, **extra_fields)
if not password: if not password:
@ -97,9 +98,16 @@ class CustomUserManager(BaseUserManager):
user.groups.add(Group.objects.get(name=group)) user.groups.add(Group.objects.get(name=group))
if is_send: if is_send:
pass invite = Invite.objects.create(owner=user, hash=''.join(random.choice(string.ascii_letters) for x in range(15)))
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 return user
def create_user(self, email, password, **extra_fields): 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) 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): def create_student(self, email, password, **extra_fields):
user = self.create_user(email=email, password=password, is_send=True, **extra_fields) return self.create_user(email=email, password=password, role_list=['students'], is_send=True, **extra_fields)
group = Group.objects.get(name='students')
user.groups.add(group)
return user
class User(AbstractBaseUser, PermissionsMixin): class User(AbstractBaseUser, PermissionsMixin):

@ -17,15 +17,20 @@ class AccountSerializer(serializers.ModelSerializer):
class UserInitSerializer(serializers.ModelSerializer): class UserInitSerializer(serializers.ModelSerializer):
account = serializers.SerializerMethodField() account = serializers.SerializerMethodField()
groups = serializers.SerializerMethodField()
class Meta: class Meta:
model = get_user_model() 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 @staticmethod
def get_account(self): def get_account(self):
return AccountSerializer(self.account).data return AccountSerializer(self.account).data
@staticmethod
def get_groups(self):
return [group.name for group in self.groups.all()]
class ExtraPrivilegeSerializer(serializers.ModelSerializer): class ExtraPrivilegeSerializer(serializers.ModelSerializer):
class Meta: class Meta:

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

@ -1,9 +1,11 @@
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib import auth from django.contrib import auth
from django.shortcuts import redirect
from rest_framework.views import APIView from rest_framework.views import APIView
from rest_framework.renderers import JSONRenderer from rest_framework.renderers import JSONRenderer
from rest_framework.response import Response from rest_framework.response import Response
from access.models import Invite
from access.serializers import UserInitSerializer from access.serializers import UserInitSerializer
@ -20,7 +22,7 @@ class CheckUserView(APIView):
status_code = 200 status_code = 200
def get(self, request): 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(True, status=self.status_code)
return Response(False, status=self.status_code) return Response(False, status=self.status_code)
@ -38,17 +40,28 @@ class InfoUserView(APIView):
class RegistrationView(APIView): class RegistrationView(APIView):
renderer_classes = (JSONRenderer,) 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 @staticmethod
def post(request): def post(request):
try: 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: except get_user_model().DoesNotExist:
user = get_user_model().objects.create_user( user = get_user_model().objects.create_student(
email=request.JSON['email'].lower(), 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) 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} 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: class Meta:
verbose_name = u"Курс" verbose_name = u"Курс"
verbose_name_plural = u"Курсы" verbose_name_plural = u"Курсы"
@ -181,9 +213,37 @@ class Vertex(models.Model):
def __str__(self): def __str__(self):
return self.title + ': ' + str(self.content_type.model) 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) 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: def is_more(self, vertex) -> bool:
if not self.course == vertex.course: if not self.course == vertex.course:
@ -255,9 +315,22 @@ class CourseMap(models.Model):
return helper(json.loads(self.dependent_elements)) 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() res_list = self.map_to_list()
if not res_list[-1] == vertex_id: 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]) error = "vertex_id " + str(vertex_id) + " last object in list\n" + ",".join([str(v) for v in res_list])
raise ValueError(error) 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 django.contrib.auth import get_user_model
from access.models import Progress from access.models import Progress
from courses.models import Vertex from courses.models import Vertex, Course
if __name__ == '__main__': if __name__ == '__main__':
with open('./access/progress.csv') as progress_csv: with open('./access/progress.csv') as progress_csv:
@ -23,13 +23,29 @@ if __name__ == '__main__':
get_id = int(row['last_success_obj'])+10000 get_id = int(row['last_success_obj'])+10000
vertex = Vertex.objects.get(content_type__model='task', object_id=str(get_id)) vertex = Vertex.objects.get(content_type__model='task', object_id=str(get_id))
if vertex: course = Course.objects.get(id=row['course'])
try:
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( Progress.objects.get_or_create(
user=get_user_model().objects.get(id=row['user']), user=get_user_model().objects.get(id=row['user']),
course_id=row['course'], course=course,
active_obj=vertex.get_next() active_obj=course.get_first(['task', 'tutorial'])
) )
except get_user_model().DoesNotExist: except get_user_model().DoesNotExist:
print(row['user']) print(row['user'])

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

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

@ -1,11 +1,12 @@
# coding=utf-8 # coding=utf-8
import datetime import datetime
from hashlib import md5 from hashlib import md5
from django.shortcuts import render from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from finance.models import Bill, YandexKassaHistory 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): def gen_md5(cd):

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

@ -1,77 +1,79 @@
# coding=utf-8 # coding=utf-8
from celery.task import periodic_task
from datetime import timedelta, datetime from datetime import timedelta, datetime
from celery.task import periodic_task
from django.core.files import File 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 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: # @periodic_task(run_every=timedelta(hours=1))
_out = open(_out, 'rb') # def check_expired():
tm.out_image.save(File(_out).name, File(_out), save=True) # # Проверка просроченых задач преподавателя
tm.gen = True # for res in (ExamTry.objects.filter(f_date=None).exclude(expired=True),
tm.save() # 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 # coding=utf-8
import os import os
import raven import raven
# Build paths inside the project like this: os.path.join(BASE_DIR, ...) import environ
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) root = environ.Path(__file__) - 2
env = environ.Env()
MOD = os.environ.get('MOD', 'Dev')
# Quick-start development settings - unsuitable for production if MOD == 'Test':
# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/ environ.Env.read_env(str(root) + '/config_app/settings/test.env')
# SECURITY WARNING: keep the secret key used in production secret! elif MOD == 'Dev':
SECRET_KEY = '!eiquy7_+2#vn3z%zfp51$m-=tmvtcv*cj*@x$!v(_9btq0w=$' environ.Env.read_env(str(root) + '/config_app/settings/dev.env')
COMMENT_SECRET = 'ntyy70()&^&%)_^%#++i[k,q4jnb'
elif MOD == 'Prod':
# SECURITY WARNING: don't run with debug turned on in production! environ.Env.read_env(str(root) + '/config_app/settings/prod.env')
DEBUG = False if os.environ.get('DEBUG', 'False') == 'False' else True
else:
TESTING = False raise ImportError('no such environ ' + MOD)
TEST_EMAIL = 'bez.b.unix@gmail.com'
TEACHER = 't@skillbox.ru' EMAIL_CONFIG = env.email_url('EMAIL_URL',)
SUPERVISOR = 's@skillbox.ru' vars().update(EMAIL_CONFIG)
MANAGER = 'm@skillbox.ru'
MANAGERS = [ BROKER_URL = 'amqp://guest:guest@localhost:5672//'
'maksim.shachkov@skillbox.ru', CELERY_RESULT_BACKEND = 'django-db'
'aleksey.zelentsov@skillbox.ru', CELERY_CACHE_BACKEND = 'django-cache'
'roman.fatullaev@skillbox.ru', BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 180}
'vladimir.kakaulin@skillbox.ru',
'dmitry.perepelitsa@skillbox.ru', CELERY_EMAIL_TASK_CONFIG = {
'timofey.trifonov@skillbox.ru', 'name': 'djcelery_email_send',
'sergej.gavrilovich@skillbox.ru', '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' AUTH_USER_MODEL = 'access.User'
VZAAR = 'f1e965defc6fbaa92c544cf84267e830' VZAAR = 'f1e965defc6fbaa92c544cf84267e830'
SMS = '5ED9C6BB-41E8-C760-10FA-F8A310D88952' SMS = '5ED9C6BB-41E8-C760-10FA-F8A310D88952'
ALLOWED_HOSTS = ['*'] ALLOWED_HOSTS = ['*']
DOMAIN = 'https://go.skillbox.ru' 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_LOGIN = '1501'
BILL_URL = 'https://api.simplepay.pro/sp/payment' BILL_URL = 'https://api.simplepay.pro/sp/payment'
BILL_KEY = u'848360a6b0b8cdfaca3603ede75e4d8b' BILL_KEY = u'848360a6b0b8cdfaca3603ede75e4d8b'
@ -54,11 +53,6 @@ BILL_TOKEN = u'c63fc7fdc74de318e1f9b078b6d4406a3e62f522b00fb305afe61c0ead238eb9c
AMO_USER_LOGIN = 'baryshnikov@mokselle.com' AMO_USER_LOGIN = 'baryshnikov@mokselle.com'
AMO_USER_HASH = 'd639c26c1c1900e5a8cee66cd3395bdc' AMO_USER_HASH = 'd639c26c1c1900e5a8cee66cd3395bdc'
AMO_SUBDOMAIN = 'mokselle' 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' DEFAULT_FROM_EMAIL = 'robo@skillbox.ru'
YANDEX_MONEY_SHOP_PASSWORD = 'nu5Xefise' YANDEX_MONEY_SHOP_PASSWORD = 'nu5Xefise'
YANDEX_SHOP_ID = '157133' YANDEX_SHOP_ID = '157133'
@ -68,6 +62,20 @@ YANDEX_scid = '149639'
# место куда сохраняем пользовательские файлы # место куда сохраняем пользовательские файлы
PERSONAL_FILES = '/personal_files/' 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 = [ INSTALLED_APPS = [
'django.contrib.admin', 'django.contrib.admin',
@ -78,6 +86,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'django_celery_results', 'django_celery_results',
'django_celery_beat', 'django_celery_beat',
"djcelery_email",
'raven.contrib.django.raven_compat', 'raven.contrib.django.raven_compat',
'access', 'access',
'courses', 'courses',
@ -85,8 +94,8 @@ INSTALLED_APPS = [
'management', 'management',
'finance', 'finance',
'journals', 'journals',
'service',
'library', 'library',
'config_app',
] ]
MIDDLEWARE_CLASSES = [ MIDDLEWARE_CLASSES = [
@ -123,21 +132,6 @@ TEMPLATES = [
WSGI_APPLICATION = 'lms.wsgi.application' 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 # Password validation
# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
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' LANGUAGE_CODE = 'ru-ru'
TIME_ZONE = 'Europe/Moscow' TIME_ZONE = 'Europe/Moscow'
USE_I18N = True USE_I18N = True
@ -166,14 +157,10 @@ USE_L10N = True
USE_TZ = False 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_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/' MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/' STATIC_URL = '/static/'
REDACTOR_OPTIONS = {'lang': 'ru'}
REDACTOR_UPLOAD = 'uploads/'
RAVEN_CONFIG = { RAVEN_CONFIG = {
'dsn': 'http://caaea487274f4e23a9107862484c79f3:3d463ad4717942508536f7a659921950@sentry.skillbox.ru/3' 'dsn': 'http://caaea487274f4e23a9107862484c79f3:3d463ad4717942508536f7a659921950@sentry.skillbox.ru/3'

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

@ -1,5 +1,6 @@
from django.contrib import admin 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 amqp==2.2.2
billiard==3.5.0.3 billiard==3.5.0.3
celery==4.1.0 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