def profile(request, id): if not request.user.is_authenticated(): return redirect('/auth/in') try: UpdateStatus(request.user) checkAchievements(request.user) up = getProfileInfo(id) context = { 'title': up['title'], 'user': up['user'], 'bodyclass': 'profile-page', 'avatar': up['avatar'], 'friends': up['friends'], 'actions': up['actions'], 'active_page': 1, 'actions_morph': up['actions_morph'], 'xp': up['xp'], 'xp_morph': up['xp_morph'], 'ach_counter': up['ach_counter'], 'ach_counter_morph': up['ach_counter_morph'], 'last_achievements': up['last_achievements'], 'rank': up['rank'], 'contacts': up['contacts'], 'phone': up['phone'], 'is_online': up['is_online'], 'last_visit': up['last_visit'], } return render(request, 'profile.html', context) except ObjectDoesNotExist: return redirect('/')
def profile(request, id): if not request.user.is_authenticated(): return redirect('/auth/in') try: UpdateStatus(request.user) checkAchievements(request.user) up = getProfileInfo(id) context = { 'title': up['title'], 'user': up['user'], 'bodyclass': 'profile-page', 'avatar': up['avatar'], 'friends': up['friends'], 'actions': up['actions'], 'active_page': 1, 'actions_morph': up['actions_morph'], 'xp': up['xp'], 'xp_morph': up['xp_morph'], 'ach_counter': up['ach_counter'], 'ach_counter_morph': up['ach_counter_morph'], 'last_achievements': up['last_achievements'], 'rank': up['rank'], 'contacts': up['contacts'], 'phone': up['phone'], 'is_online': up['is_online'], 'last_visit': up['last_visit'], } return render(request, 'profile.html', context) except ObjectDoesNotExist: return redirect('/')
def achievements(request, id): if not request.user.is_authenticated(): return redirect('/auth/in') try: UpdateStatus(request.user) checkAchievements(request.user) up = getProfileInfo(id) try: my_ach_list = AchUnlocked.objects.all().filter(login = up['user']).order_by('-pub_date') my_ach = [] for ach in my_ach_list: my_ach.append({ 'title': ach.ach_id.title, 'description': ach.ach_id.description, 'xp': ach.ach_id.xp, 'icon': ach.ach_id.icon, }) exclude_names = [o.ach_id.title for o in my_ach_list] except ObjectDoesNotExist: my_ach = [] if my_ach: not_my_ach_list = Achievement.objects.all().exclude(title__in = exclude_names) else: not_my_ach_list = Achievement.objects.all() achs = [] for ach in not_my_ach_list: achs.append({ 'title': ach.title, 'description': ach.description, 'xp': ach.xp, 'icon': ach.icon, }) context = { 'title': up['title'], 'user': up['user'], 'bodyclass': 'profile-page', 'avatar': up['avatar'], 'friends': up['friends'], 'actions': up['actions'], 'active_page': 2, 'actions_morph': up['actions_morph'], 'xp': up['xp'], 'xp_morph': up['xp_morph'], 'ach_counter': up['ach_counter'], 'ach_counter_morph': up['ach_counter_morph'], 'last_achievements': up['last_achievements'], 'rank': up['rank'], 'contacts': up['contacts'], 'phone': up['phone'], 'is_online': up['is_online'], 'last_visit': up['last_visit'], 'my_ach': my_ach, 'achs': achs, } return render(request, 'profile-achievements.html', context) except ObjectDoesNotExist: return redirect('/')
def my_attendance(request, id): if not request.user.is_authenticated(): return redirect('/auth/in') try: _bingo = bingo(request.user) UpdateStatus(request.user) checkAchievements(request.user) up = getProfileInfo(id) semester = settings.SEMESTER attendance = [] for lesson in Lesson_Item.objects.all().filter(semester = semester): my_visits = [] for day in Attendance.objects.all().filter(lesson = lesson).filter(Q(group = 0) | Q(group = (up['user'].userprofile.group))): type = 'Лекция' if day.type == 2: type = 'Практика' elif day.type == 3: type = 'Лабораторная работа' my_visits.append({ 'date': day.date, 'type': type, 'visitor': day.visitor, }) attendance.append({ 'title': lesson.title, 'days': my_visits, }) context = { 'title': up['title'], 'user': up['user'], 'bodyclass': 'profile-page', 'avatar': up['avatar'], 'friends': up['friends'], 'actions': up['actions'], 'active_page': 4, 'actions_morph': up['actions_morph'], 'xp': up['xp'], 'xp_morph': up['xp_morph'], 'ach_counter': up['ach_counter'], 'ach_counter_morph': up['ach_counter_morph'], 'last_achievements': up['last_achievements'], 'rank': up['rank'], 'contacts': up['contacts'], 'phone': up['phone'], 'is_online': up['is_online'], 'last_visit': up['last_visit'], 'attendance': attendance, 'attendance_percent': up['attendance_percent'], 'duties_percent': up['duties_percent'], 'level': up['level'], 'percent': up['percent'], 'bingo': _bingo, 'more': up, } return render(request, 'profile_attendance.html', context) except ObjectDoesNotExist: return redirect('/')
def my_duties(request, id): if not request.user.is_authenticated(): return redirect('/auth/in') try: _bingo = bingo(request.user) UpdateStatus(request.user) checkAchievements(request.user) up = getProfileInfo(id) semester = settings.SEMESTER duties = [] for lesson in Lesson_Item.objects.all().filter(semester = semester): my_visits = [] for day in Duty.objects.all().filter(lesson = lesson).filter(Q(group = 0) | Q(group = (up['user'].userprofile.group))): my_visits.append({ 'id': day.id, 'date': day.date, 'description': day.description, 'visitor': day.visitors, }) duties.append({ 'title': lesson.title, 'days': my_visits, }) context = { 'title': up['title'], 'user': up['user'], 'bodyclass': 'profile-page', 'avatar': up['avatar'], 'friends': up['friends'], 'actions': up['actions'], 'active_page': 5, 'actions_morph': up['actions_morph'], 'xp': up['xp'], 'xp_morph': up['xp_morph'], 'ach_counter': up['ach_counter'], 'ach_counter_morph': up['ach_counter_morph'], 'last_achievements': up['last_achievements'], 'rank': up['rank'], 'contacts': up['contacts'], 'phone': up['phone'], 'is_online': up['is_online'], 'last_visit': up['last_visit'], 'duties': duties, 'attendance_percent': up['attendance_percent'], 'duties_percent': up['duties_percent'], 'level': up['level'], 'percent': up['percent'], 'bingo': _bingo, 'more': up, } return render(request, 'profile_duties.html', context) except ObjectDoesNotExist: return redirect('/')
def profile(request, id): if not request.user.is_authenticated(): return redirect('/auth/in') try: #Бонусные очки bonus = setBonusPoints(request.user) _bingo = bingo(request.user) UpdateStatus(request.user) checkAchievements(request.user) up = getProfileInfo(id) context = { 'title': up['title'], 'user': up['user'], 'bodyclass': 'profile-page', 'avatar': up['avatar'], 'friends': up['friends'], 'actions': up['actions'], 'active_page': 1, 'actions_morph': up['actions_morph'], 'xp': up['xp'], 'xp_morph': up['xp_morph'], 'ach_counter': up['ach_counter'], 'ach_counter_morph': up['ach_counter_morph'], 'last_achievements': up['last_achievements'], 'rank': up['rank'], 'contacts': up['contacts'], 'phone': up['phone'], 'is_online': up['is_online'], 'last_visit': up['last_visit'], 'attendance_percent': up['attendance_percent'], 'duties_percent': up['duties_percent'], 'bonus': bonus, 'level': up['level'], 'percent': up['percent'], 'bingo': _bingo, 'more': up, } return render(request, 'profile.html', context) except ObjectDoesNotExist: return redirect('/')
def achievements(request, id): if not request.user.is_authenticated(): return redirect('/auth/in') try: UpdateStatus(request.user) checkAchievements(request.user) up = getProfileInfo(id) try: my_ach_list = AchUnlocked.objects.all().filter( login=up['user']).order_by('-pub_date') my_ach = [] for ach in my_ach_list: my_ach.append({ 'title': ach.ach_id.title, 'description': ach.ach_id.description, 'xp': ach.ach_id.xp, 'icon': ach.ach_id.icon, }) exclude_names = [o.ach_id.title for o in my_ach_list] except ObjectDoesNotExist: my_ach = [] if my_ach: not_my_ach_list = Achievement.objects.all().exclude( title__in=exclude_names) else: not_my_ach_list = Achievement.objects.all() achs = [] for ach in not_my_ach_list: achs.append({ 'title': ach.title, 'description': ach.description, 'xp': ach.xp, 'icon': ach.icon, }) context = { 'title': up['title'], 'user': up['user'], 'bodyclass': 'profile-page', 'avatar': up['avatar'], 'friends': up['friends'], 'actions': up['actions'], 'active_page': 2, 'actions_morph': up['actions_morph'], 'xp': up['xp'], 'xp_morph': up['xp_morph'], 'ach_counter': up['ach_counter'], 'ach_counter_morph': up['ach_counter_morph'], 'last_achievements': up['last_achievements'], 'rank': up['rank'], 'contacts': up['contacts'], 'phone': up['phone'], 'is_online': up['is_online'], 'last_visit': up['last_visit'], 'my_ach': my_ach, 'achs': achs, } return render(request, 'profile-achievements.html', context) except ObjectDoesNotExist: return redirect('/')
def statistic(request, id): if not request.user.is_authenticated(): return redirect('/auth/in') from django.db.models import Sum try: _bingo = bingo(request.user) UpdateStatus(request.user) checkAchievements(request.user) up = getProfileInfo(id) items_count = UserInventoryItem.objects.filter(user = up['user']).count() items_price = UserInventoryItem.objects.filter(user = up['user']).aggregate(Sum('price')) items_exclusives = UserInventoryItem.objects.filter(user = up['user']).filter(quality = 3).count() catapult_count = Catapult.objects.filter(from_user = up['user']).count() general_stats = { 'items_count': items_count, 'items_price': items_price, 'items_exclusives': items_exclusives, 'catapult_count': catapult_count, } items_stats = [] for item in Item.objects.all(): item_count = UserInventoryItem.objects.filter(user = up['user']).filter(item_id = item.id).count() item_price = (UserInventoryItem.objects.filter(user = up['user']).filter(item_id = item.id).aggregate(Sum('price')))['price__sum'] if item_price == None: item_price = 0 item_catapults = Catapult.objects.filter(from_user = up['user']).filter(item__item_id = item.id).count() count_low = UserInventoryItem.objects.filter(user = up['user']).filter(item_id = item.id).filter(quality = 1).count() count_high = UserInventoryItem.objects.filter(user = up['user']).filter(item_id = item.id).filter(quality = 2).count() count_exclusive = UserInventoryItem.objects.filter(user = up['user']).filter(item_id = item.id).filter(quality = 3).count() items_stats.append({ 'icon': item.icon.url, 'title': item.title, 'count': item_count, 'price': item_price, 'catapults': item_catapults, 'low': count_low, 'high': count_high, 'exclusive': count_exclusive, }) context = { 'title': up['title'], 'user': up['user'], 'bodyclass': 'profile-page', 'avatar': up['avatar'], 'friends': up['friends'], 'actions': up['actions'], 'active_page': 7, 'actions_morph': up['actions_morph'], 'xp': up['xp'], 'xp_morph': up['xp_morph'], 'ach_counter': up['ach_counter'], 'ach_counter_morph': up['ach_counter_morph'], 'last_achievements': up['last_achievements'], 'rank': up['rank'], 'contacts': up['contacts'], 'phone': up['phone'], 'is_online': up['is_online'], 'last_visit': up['last_visit'], 'attendance_percent': up['attendance_percent'], 'general_stats': general_stats, 'items_stats': items_stats, 'duties_percent': up['duties_percent'], 'level': up['level'], 'percent': up['percent'], 'bingo': _bingo, 'more': up, } return render(request, 'profile_stats.html', context) except ObjectDoesNotExist: return redirect('/')