Ejemplo n.º 1
0
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('/')
Ejemplo n.º 2
0
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('/')
Ejemplo n.º 3
0
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('/')
Ejemplo n.º 4
0
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('/')
Ejemplo n.º 5
0
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('/')
Ejemplo n.º 6
0
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('/')
Ejemplo n.º 7
0
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('/')
Ejemplo n.º 8
0
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('/')