diff --git a/.gitignore b/.gitignore index e38b38e..d3e82d9 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ build *.pyc __pycache__ +/static/ diff --git a/analytics/urls.py b/analytics/urls.py index de29679..5b97d15 100644 --- a/analytics/urls.py +++ b/analytics/urls.py @@ -1,7 +1,10 @@ from django.conf.urls import url -from .views import index_view, new_view +from analytics import views urlpatterns = [ - url(r'^$', index_view), - url(r'^new/$', new_view), + url(r'^$', views.index_view), + url(r'^theme/$', views.index_view_access_theme), + url(r'^theme/new/$', views.new_view_access_theme), + url(r'^homework/$', views.index_view_homework_wait), + url(r'^homework/new/$', views.new_view_homework_wait), ] \ No newline at end of file diff --git a/analytics/views.py b/analytics/views.py index 99ecfbb..6ca748f 100644 --- a/analytics/views.py +++ b/analytics/views.py @@ -1,104 +1,150 @@ -from django.shortcuts import render_to_response, redirect +from django.shortcuts import render_to_response, redirect, render import time, os, csv from datetime import date -from django.http import HttpResponseForbidden from lms.settings import MEDIA_ROOT -from django.contrib.auth import get_user_model - -from courses.models import Course, CourseTheme -from journals.models import CourseThemeJ - - -def index_view(request): - if not request.user.is_authenticated(): - return HttpResponseForbidden() - - if not ( - request.user.in_role == "M" or request.user.in_role == "S" or request.user.in_role == "A" or request.user.is_admin): - return HttpResponseForbidden() - - start = request.GET.get('start', '') - end = request.GET.get('end', '') - - path = MEDIA_ROOT + '/analytics/s' + start + 'e' + end + 'progress.csv' - - try: - with open(path, newline='') as file: - reader = csv.reader(file, delimiter=',', quotechar='|') - max = 0 - res = [] - for row in reader: - max = max if max > len(row) else len(row) - res1 = [] - for i in row: - k = i.split("$-$") - k = {'value': k[0], 'background': 'none'} if len(i.split("$-$")) == 1 else {'value': k[0], - 'background': k[1]} - res1.append(k) - res.append(res1) - for i in res: - for j in range(max - len(i)): - i.append({'value': 0, 'background': 'none'}) - first = ['Курсы'] - for i in range(max - 1): - first.append("Тема " + str(i + 1)) - except FileNotFoundError: - return redirect("/analytics/new/?start=" + start + "&end=" + end) - - date_create = time.ctime(os.stat(path).st_atime) - - return render_to_response('analytics.html', - {'body': res, 'header': first, 'date_create': date_create, 'start': start, 'end': end}) - - -def new_view(request): - if not request.user.is_authenticated(): - return HttpResponseForbidden() - - if not ( - request.user.in_role == "M" or request.user.in_role == "S" or request.user.in_role == "A" or request.user.is_admin): - return HttpResponseForbidden() - - start = request.GET.get('start', '') - end = request.GET.get('end', '') - - path = MEDIA_ROOT + '/analytics/s' + start + 'e' + end + 'progress.csv' - - start_date = None - end_date = None - - try: - start_date = date(*[int(i) for i in start.split('-')]) - end_date = date(*[int(i) for i in end.split('-')]) - except ValueError: - pass - - if not check_date_validate(start_date, end_date): - return redirect("/analytics/") - - try: - with open(path, 'w', newline='') as csvfile: - for course in Course.objects.order_by('sort'): - list = [course.title] - for i in CourseTheme.objects.filter(course=course): - kwargs = { - 'material': i, - 'success': True, - } - if end_date: - kwargs['student__last_time__lte'] = end_date - if start_date: - kwargs['student__last_time__gte'] = start_date - list.append(str(len(CourseThemeJ.objects.filter(**kwargs))) + ( - "$-$yellow" if i._type == 'Ex' or i._type == 'M' else "")) - writercsv = csv.writer(csvfile, delimiter=',', quotechar='|') - writercsv.writerow(list) - except FileNotFoundError: - os.mkdir(MEDIA_ROOT + '/analytics') - redirect("/analytics/new/?start=" + start + "&end=" + end) - - return redirect("/analytics/?start=" + start + "&end=" + end) + +from courses.models import Course, CourseTheme, Homework, Exam +from journals.models import CourseThemeJ, HomeworkTry, ExamTry + +index_view = lambda request: render_to_response('analytics/index.html') + + +def index_view_decor(url): + def wrap(func): + def get_request(request): + start = request.GET.get('start', '') + end = request.GET.get('end', '') + + path = MEDIA_ROOT + url + 's' + start + 'e' + end + 'progress.csv' + + try: + with open(path, newline='') as file: + reader = csv.reader(file, delimiter=',', quotechar='|') + max = 0 + res = [] + for row in reader: + max = max if max > len(row) else len(row) + res1 = [] + for i in row: + k = i.split("$-$") + k = {'value': k[0], 'background': 'none'}\ + if len(i.split("$-$")) == 1 else {'value': k[0],'background': k[1]} + res1.append(k) + + res.append(res1) + for i in res: + for j in range(max - len(i)): + i.append({'value': 0, 'background': 'none'}) + first = ['Курсы'] + for i in range(max - 1): + first.append("Тема " + str(i + 1)) + except FileNotFoundError: + return redirect(url + "new/?start=" + start + "&end=" + end) + + date_create = time.ctime(os.stat(path).st_atime) + + context = { + 'body': res, + 'header': first, + 'date_create': date_create, + 'start': start, + 'end': end, + 'url': url, + } + + context.update(func()) + + return render(request, url[1:-1] + '.html', context=context) + + return get_request + + return wrap + + +@index_view_decor("/analytics/theme/") +def index_view_access_theme(): + return {} + + +@index_view_decor("/analytics/homework/") +def index_view_homework_wait(): + return {} + + +def new_view_decor(url): + def wrap(func): + def get_request(request): + start = request.GET.get('start', '') + end = request.GET.get('end', '') + + path = MEDIA_ROOT + url + 's' + start + 'e' + end + 'progress.csv' + + start_date = None + end_date = None + + try: + start_date = date(*[int(i) for i in start.split('-')]) + end_date = date(*[int(i) for i in end.split('-')]) + except ValueError: + pass + + if not check_date_validate(start_date, end_date): + return redirect(url) + + try: + with open(path, 'w', newline='') as csvfile: + func(end_date, start_date, csvfile) + return redirect(url + "?start=" + start + "&end=" + end) + + except FileNotFoundError: + os.makedirs(MEDIA_ROOT + url) + return redirect(url + "new/?start=" + start + "&end=" + end) + + return get_request + + return wrap + + +@new_view_decor("/analytics/theme/") +def new_view_access_theme(end_date, start_date, csvfile): + for course in Course.objects.order_by('sort'): + list = [course.title] + for i in CourseTheme.objects.filter(course=course): + kwargs = { + 'material': i, + 'success': True, + } + if end_date: + kwargs['student__last_time__lte'] = end_date + if start_date: + kwargs['student__last_time__gte'] = start_date + list.append(str(len(CourseThemeJ.objects.filter(**kwargs))) + ( + "$-$yellow" if i._type == 'Ex' else "")) + writercsv = csv.writer(csvfile, delimiter=',', quotechar='|') + writercsv.writerow(list) + + +@new_view_decor("/analytics/homework/") +def new_view_homework_wait(end_date, start_date, csvfile): + for course in Course.objects.order_by('sort'): + list = [course.title] + for i in CourseTheme.objects.filter(course=course): + kwargs = { + 'success': False, + 'expired': False, + 'f_date': None + } + if end_date: + kwargs['student__last_time__lte'] = end_date + if start_date: + kwargs['student__last_time__gte'] = start_date + list.append(str( + len(HomeworkTry.objects.filter(material=Homework.objects.filter(theme=i), **kwargs)) + + len(ExamTry.objects.filter(material=Exam.objects.filter(theme=i), **kwargs)) + )) + writercsv = csv.writer(csvfile, delimiter=',', quotechar='|') + writercsv.writerow(list) def check_date_validate(start=None, end=None): diff --git a/media/analitycs/theme/seprogress.csv b/media/analitycs/theme/seprogress.csv new file mode 100644 index 0000000..92c5448 --- /dev/null +++ b/media/analitycs/theme/seprogress.csv @@ -0,0 +1,37 @@ +Профессия — интернет-маркетолог,176,75,34,30,21,13,12,11,12,11,11,11,11,11,11,11,11 +test,0 +Как открыть веб-студию,67,42,38,36,29,29,26,23,19,18,17,14,13,11,9 +Дипломный проект «MOS.RU»,9,2,2$-$yellow +Дипломный проект «НТВ ПЛЮС»,11,3 +Акварельная живопись,13,10,9,4,3,1,1,1,1,1 +Веб-Дизайн PRO,144,102,83,66,61,52,43,37,34,28,25,23,22,19,19,18,7$-$yellow +Скетчинг для дизайнера,77,56,43,24,21,19,12,10,9,8,5,4,4,4,3,4 +Дипломный проект «Фестиваль молодежи»,16,5 +Android-разработчик,25,15,11,4,4,4,2,2,2,2,2,2,1,2,2,3,1$-$yellow +Дипломный проект «Промсвязьбанк»,2,1 +ux design,953,820,676,556,428,338,211,140,90,66,66,64,64,66,49,50,47,34$-$yellow,13$-$yellow +Дипломный проект «Газпромбанк»,15,4,0$-$yellow +Дипломный проект «ПОЧТА БАНК»,14,8 +Excel продвинутый,10,10,9,9,7,4,5,4,4$-$yellow +Дипломный проект «СМП БАНК»,10,5 +ux design special AIC,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Профессия интернет-маркетолог от А до Я,56,41,35,35,31,30,30,31,37,29,33 +Blockchain,38,13,1,0,0 +JavaScript,57,47,44,42,40,36,32,29,25,25,24,24,21,18,15,14,4$-$yellow,7$-$yellow +Разработчик 1С-Битрикс,10,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0$-$yellow +Веб-Дизайн для начинающих,201,74,348,44,289,218,187,165,141,109,99,85,74,43,12,12,36 +Управление проектами,245,107,143,86,79,65,48,37,28,25,16,5,5,5,5 +Веб-разработчик,813,727,661,613,598,503,441,369,327,290,247,217,205,189,164,63,84$-$yellow,56$-$yellow,15,34 +Дипломный проект «Yota»,16,7,2$-$yellow +ux аналитик,108,84,61,43,36,30,6,24,21,19,19,14,13,11,7,6,6,6 +Дипломный проект «Kaspi.kz»,20,11,2$-$yellow +Видеоблогинг,144,42,7,4,3,3,3 +UI анимация,158,125,88,60,42,31,16,12,10,7,7,7,7,6,6,7,6,6,6,6 +Key Visual,20,18,15,13,10,8,8,9 +Профессия PR-менеджер,73,32,26,17,13,2$-$yellow +Дипломный проект «Ticketland»,12,6 +Дипломный проект «Mos.ru-2»,5,4 +iOS Разработчик,30,32,28,28,23,21,17,16,12,7,8,7,7,5,5,3,3$-$yellow +Java разработчик,426,300,224,172,134,111,103,69,48,31,24,19,16,15,13,12,12$-$yellow +Excel базовый,32,25,23,24,21,20,20,18,14$-$yellow +C# разработчик,62,47,42,37,34,29,27,25,24,22,18,13,13,13,11,5,8$-$yellow diff --git a/media/analytics/homework/s2017-08-03e2017-08-17progress.csv b/media/analytics/homework/s2017-08-03e2017-08-17progress.csv new file mode 100644 index 0000000..2d84435 --- /dev/null +++ b/media/analytics/homework/s2017-08-03e2017-08-17progress.csv @@ -0,0 +1,38 @@ +ntcn1,0$-$yellow,0 +test,0 +Как открыть веб-студию,0,3,0,0,0,0,0,0,2,0,0,0,0,0,0 +Дипломный проект «MOS.RU»,0,0,0$-$yellow +Дипломный проект «НТВ ПЛЮС»,1,2 +Акварельная живопись,7,2,4,1,1,0,0,0,0,0 +Веб-Дизайн PRO,21,16,8,2,2,6,10,2,1,4,0,0,1,0,1,3,2$-$yellow +Скетчинг для дизайнера,1,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0 +Дипломный проект «Фестиваль молодежи»,1,3 +Android-разработчик,0,2,1,1,1,2,0,0,0,0,0,0,0,0,0,0,0$-$yellow +Дипломный проект «Промсвязьбанк»,9,0 +ux design,16,64,25,14,25,31,111,31,13,0,0,0,0,8,0,0,0,0$-$yellow,0$-$yellow +Дипломный проект «Газпромбанк»,4,2,0$-$yellow +Дипломный проект «ПОЧТА БАНК»,3,2 +Excel продвинутый,0,0,0,0,0,0,0,0,0$-$yellow +Дипломный проект «СМП БАНК»,2,0 +ux design special AIC,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Blockchain,6,0,0,0,0 +JavaScript,13,11,13,9,12,8,8,11,10,10,8,6,7,8,7,3,0$-$yellow,8$-$yellow +Профессия — интернет-маркетолог,17,25,13,0,4,0,0,0,0,0,0,0,0,0,0,0,0 +Разработчик 1С-Битрикс,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0$-$yellow +Веб-Дизайн для начинающих,0,0,17,0,36,18,12,13,24,7,4,7,6,19,0,0,15 +Управление проектами,3,11,9,14,0,2,0,0,0,0,0,0,0,0,0 +Веб-разработчик,18,45,46,34,13,71,7,20,14,39,61,21,34,32,32,0,0$-$yellow,50$-$yellow,0,0 +Дипломный проект «Yota»,0,0,0$-$yellow +ux аналитик,0,1,5,5,2,1,0,2,1,1,2,1,3,1,0,1,0,0 +Дипломный проект «Kaspi.kz»,0,0,0$-$yellow +Видеоблогинг,4,3,2,0,0,0,0 +UI анимация,13,3,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Key Visual,5,0,0,0,0,0,0,0 +Профессия PR-менеджер,7,6,0,2,1,0$-$yellow +Дипломный проект «Ticketland»,2,0 +Дипломный проект «Mos.ru-2»,2,0 +Профессия интернет-маркетолог от А до Я,0,6,0,0,0,0,0,0,0,0,0 +iOS Разработчик,0,0,0,0,0,3,1,0,0,0,0,0,0,0,0,0,0$-$yellow +Java разработчик,59,77,134,80,66,53,45,129,76,20,45,44,1,2,2,0,3$-$yellow +Excel базовый,2,0,0,0,0,0,0,0,0$-$yellow +C# разработчик,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0$-$yellow diff --git a/media/analytics/homework/seprogress.csv b/media/analytics/homework/seprogress.csv new file mode 100644 index 0000000..6ee49b2 --- /dev/null +++ b/media/analytics/homework/seprogress.csv @@ -0,0 +1,38 @@ +ntcn1,0,0 +test,0 +Как открыть веб-студию,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +Дипломный проект «MOS.RU»,0,0,0 +Дипломный проект «НТВ ПЛЮС»,0,0 +Акварельная живопись,0,0,0,0,0,1,0,0,0,0 +Веб-Дизайн PRO,2,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0 +Скетчинг для дизайнера,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0 +Дипломный проект «Фестиваль молодежи»,0,0 +Android-разработчик,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Дипломный проект «Промсвязьбанк»,1,0 +ux design,5,4,8,1,4,5,4,1,1,0,0,0,0,0,0,0,0,0,0 +Дипломный проект «Газпромбанк»,0,0,0 +Дипломный проект «ПОЧТА БАНК»,0,0 +Excel продвинутый,0,0,0,0,0,0,0,0,0 +Дипломный проект «СМП БАНК»,0,0 +ux design special AIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Blockchain,1,0,0,0,0 +JavaScript,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2 +Профессия — интернет-маркетолог,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 +Разработчик 1С-Битрикс,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Веб-Дизайн для начинающих,0,0,7,0,5,1,1,2,1,0,2,0,0,1,0,0,4 +Управление проектами,7,0,2,1,0,0,0,1,1,1,3,2,0,0,0 +Веб-разработчик,1,3,4,2,0,3,1,0,0,1,2,2,0,0,3,0,0,0,0,0 +Дипломный проект «Yota»,0,0,0 +ux аналитик,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 +Дипломный проект «Kaspi.kz»,0,0,0 +Видеоблогинг,0,0,0,0,0,0,0 +UI анимация,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Key Visual,0,0,0,0,0,1,0,0 +Профессия PR-менеджер,0,2,0,0,0,0 +Дипломный проект «Ticketland»,0,0 +Дипломный проект «Mos.ru-2»,0,0 +Профессия интернет-маркетолог от А до Я,0,0,0,0,0,0,0,0,0,0,0 +iOS Разработчик,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 +Java разработчик,1,2,1,1,2,0,0,1,1,1,0,0,0,0,1,0,6 +Excel базовый,0,0,0,0,2,0,0,1,2 +C# разработчик,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2 diff --git a/media/analytics/theme/s2017-08-09e2017-08-16progress.csv b/media/analytics/theme/s2017-08-09e2017-08-16progress.csv new file mode 100644 index 0000000..694bc22 --- /dev/null +++ b/media/analytics/theme/s2017-08-09e2017-08-16progress.csv @@ -0,0 +1,37 @@ +Профессия — интернет-маркетолог,17,8,5,5,3,1,1,1,1,1,1,1,1,1,1,1,1 +test,0 +Как открыть веб-студию,3,2,1,1,1,2,2,1,1,0,0,0,0,0,0 +Дипломный проект «MOS.RU»,0,0,0$-$yellow +Дипломный проект «НТВ ПЛЮС»,0,0 +Акварельная живопись,2,2,2,1,1,0,0,0,0,0 +Веб-Дизайн PRO,14,13,11,10,10,9,9,9,8,8,6,6,5,4,4,4,1$-$yellow +Скетчинг для дизайнера,8,5,3,2,2,2,0,0,0,0,0,0,0,0,0,0 +Дипломный проект «Фестиваль молодежи»,4,2 +Android-разработчик,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0$-$yellow +Дипломный проект «Промсвязьбанк»,1,1 +ux design,76,69,56,48,41,33,16,14,10,5,4,4,3,9,3,3,3,0$-$yellow,0$-$yellow +Дипломный проект «Газпромбанк»,2,1,0$-$yellow +Дипломный проект «ПОЧТА БАНК»,1,1 +Excel продвинутый,0,0,0,0,0,0,0,0,0$-$yellow +Дипломный проект «СМП БАНК»,0,0 +ux design special AIC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Профессия интернет-маркетолог от А до Я,0,0,0,0,0,0,0,1,0,0,0 +Blockchain,4,0,0,0,0 +JavaScript,4,4,4,4,4,3,3,3,2,2,2,2,2,2,1,1,0$-$yellow,1$-$yellow +Разработчик 1С-Битрикс,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0$-$yellow +Веб-Дизайн для начинающих,15,3,24,1,21,19,17,17,15,11,10,10,9,6,1,1,5 +Управление проектами,27,13,20,10,9,7,5,3,2,2,2,2,2,2,2 +Веб-разработчик,29,27,25,27,25,23,20,18,15,14,13,11,9,8,7,4,3$-$yellow,4$-$yellow,2,4 +Дипломный проект «Yota»,1,1,0$-$yellow +ux аналитик,7,6,6,5,5,5,1,4,3,3,3,3,3,2,2,2,1,1 +Дипломный проект «Kaspi.kz»,2,2,1$-$yellow +Видеоблогинг,8,4,0,0,0,0,0 +UI анимация,13,9,8,4,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1 +Key Visual,3,1,1,0,0,0,0,0 +Профессия PR-менеджер,4,3,1,0,1,0$-$yellow +Дипломный проект «Ticketland»,1,1 +Дипломный проект «Mos.ru-2»,0,0 +iOS Разработчик,2,2,2,2,2,3,2,2,0,0,0,0,0,0,0,0,0$-$yellow +Java разработчик,16,15,11,8,6,6,6,5,4,4,4,3,2,2,2,1,2$-$yellow +Excel базовый,0,0,0,0,0,1,1,0,0$-$yellow +C# разработчик,2,2,2,1,1,1,1,1,1,1,0,0,0,0,0,0,0$-$yellow diff --git a/media/analytics/theme/s2017-08-09e2017-08-24progress.csv b/media/analytics/theme/s2017-08-09e2017-08-24progress.csv new file mode 100644 index 0000000..1518b36 --- /dev/null +++ b/media/analytics/theme/s2017-08-09e2017-08-24progress.csv @@ -0,0 +1,37 @@ +Профессия — интернет-маркетолог,128,56,27,24,17,9,8,7,7,7,7,7,7,7,7,7,7 +test,0 +Как открыть веб-студию,26,13,13,12,10,11,11,8,6,7,6,3,3,2,2 +Дипломный проект «MOS.RU»,0,0,0$-$yellow +Дипломный проект «НТВ ПЛЮС»,2,1 +Акварельная живопись,6,5,5,3,3,1,1,1,1,1 +Веб-Дизайн PRO,68,52,48,40,39,31,26,24,21,19,16,15,14,12,12,12,5$-$yellow +Скетчинг для дизайнера,34,26,23,16,13,11,7,5,5,4,2,1,1,1,0,0 +Дипломный проект «Фестиваль молодежи»,8,3 +Android-разработчик,8,6,4,2,2,2,1,1,0,0,0,0,0,0,0,0,0$-$yellow +Дипломный проект «Промсвязьбанк»,2,1 +ux design,373,318,258,217,169,141,80,58,44,29,29,23,23,35,20,19,19,13$-$yellow,8$-$yellow +Дипломный проект «Газпромбанк»,7,3,0$-$yellow +Дипломный проект «ПОЧТА БАНК»,6,5 +Excel продвинутый,4,4,4,4,3,1,1,1,1$-$yellow +Дипломный проект «СМП БАНК»,5,4 +ux design special AIC,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Профессия интернет-маркетолог от А до Я,30,26,21,22,19,18,18,20,21,18,21 +Blockchain,35,13,1,0,0 +JavaScript,24,21,19,19,17,14,13,12,9,9,9,9,7,5,3,3,0$-$yellow,2$-$yellow +Разработчик 1С-Битрикс,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0$-$yellow +Веб-Дизайн для начинающих,87,32,179,24,156,130,113,105,94,75,68,57,47,30,7,5,26 +Управление проектами,149,78,112,75,70,60,47,37,28,25,16,5,5,5,5 +Веб-разработчик,178,166,154,149,142,120,104,92,83,72,63,53,49,47,40,18,19$-$yellow,16$-$yellow,7,13 +Дипломный проект «Yota»,4,4,1$-$yellow +ux аналитик,54,41,33,22,22,21,2,17,15,14,13,10,9,7,4,3,3,3 +Дипломный проект «Kaspi.kz»,4,4,2$-$yellow +Видеоблогинг,45,24,3,1,0,0,0 +UI анимация,84,62,46,37,28,22,11,8,7,4,4,4,4,3,3,4,3,3,3,3 +Key Visual,18,17,14,12,9,7,7,8 +Профессия PR-менеджер,28,18,14,12,11,2$-$yellow +Дипломный проект «Ticketland»,8,3 +Дипломный проект «Mos.ru-2»,3,3 +iOS Разработчик,8,8,6,6,6,7,6,5,2,2,1,0,0,0,0,0,0$-$yellow +Java разработчик,95,83,67,57,49,42,38,28,18,14,12,10,7,6,5,4,5$-$yellow +Excel базовый,4,3,2,2,2,3,3,1,2$-$yellow +C# разработчик,14,12,12,11,10,9,9,8,8,7,4,3,3,3,3,0,1$-$yellow diff --git a/media/analytics/theme/seprogress.csv b/media/analytics/theme/seprogress.csv new file mode 100644 index 0000000..92c5448 --- /dev/null +++ b/media/analytics/theme/seprogress.csv @@ -0,0 +1,37 @@ +Профессия — интернет-маркетолог,176,75,34,30,21,13,12,11,12,11,11,11,11,11,11,11,11 +test,0 +Как открыть веб-студию,67,42,38,36,29,29,26,23,19,18,17,14,13,11,9 +Дипломный проект «MOS.RU»,9,2,2$-$yellow +Дипломный проект «НТВ ПЛЮС»,11,3 +Акварельная живопись,13,10,9,4,3,1,1,1,1,1 +Веб-Дизайн PRO,144,102,83,66,61,52,43,37,34,28,25,23,22,19,19,18,7$-$yellow +Скетчинг для дизайнера,77,56,43,24,21,19,12,10,9,8,5,4,4,4,3,4 +Дипломный проект «Фестиваль молодежи»,16,5 +Android-разработчик,25,15,11,4,4,4,2,2,2,2,2,2,1,2,2,3,1$-$yellow +Дипломный проект «Промсвязьбанк»,2,1 +ux design,953,820,676,556,428,338,211,140,90,66,66,64,64,66,49,50,47,34$-$yellow,13$-$yellow +Дипломный проект «Газпромбанк»,15,4,0$-$yellow +Дипломный проект «ПОЧТА БАНК»,14,8 +Excel продвинутый,10,10,9,9,7,4,5,4,4$-$yellow +Дипломный проект «СМП БАНК»,10,5 +ux design special AIC,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Профессия интернет-маркетолог от А до Я,56,41,35,35,31,30,30,31,37,29,33 +Blockchain,38,13,1,0,0 +JavaScript,57,47,44,42,40,36,32,29,25,25,24,24,21,18,15,14,4$-$yellow,7$-$yellow +Разработчик 1С-Битрикс,10,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0$-$yellow +Веб-Дизайн для начинающих,201,74,348,44,289,218,187,165,141,109,99,85,74,43,12,12,36 +Управление проектами,245,107,143,86,79,65,48,37,28,25,16,5,5,5,5 +Веб-разработчик,813,727,661,613,598,503,441,369,327,290,247,217,205,189,164,63,84$-$yellow,56$-$yellow,15,34 +Дипломный проект «Yota»,16,7,2$-$yellow +ux аналитик,108,84,61,43,36,30,6,24,21,19,19,14,13,11,7,6,6,6 +Дипломный проект «Kaspi.kz»,20,11,2$-$yellow +Видеоблогинг,144,42,7,4,3,3,3 +UI анимация,158,125,88,60,42,31,16,12,10,7,7,7,7,6,6,7,6,6,6,6 +Key Visual,20,18,15,13,10,8,8,9 +Профессия PR-менеджер,73,32,26,17,13,2$-$yellow +Дипломный проект «Ticketland»,12,6 +Дипломный проект «Mos.ru-2»,5,4 +iOS Разработчик,30,32,28,28,23,21,17,16,12,7,8,7,7,5,5,3,3$-$yellow +Java разработчик,426,300,224,172,134,111,103,69,48,31,24,19,16,15,13,12,12$-$yellow +Excel базовый,32,25,23,24,21,20,20,18,14$-$yellow +C# разработчик,62,47,42,37,34,29,27,25,24,22,18,13,13,13,11,5,8$-$yellow diff --git a/templates/analytics/base.html b/templates/analytics/base.html new file mode 100644 index 0000000..64d1492 --- /dev/null +++ b/templates/analytics/base.html @@ -0,0 +1,41 @@ + + +
+ +| {{ i }} | + {% endfor %} +
|---|
| {{ j.value }} | + {% endfor %} +
+ {% block description %}{% endblock %} +
+ +