Hall of fame
This commit is contained in:
@@ -3,4 +3,5 @@ from challenges.models import *
|
||||
|
||||
admin.site.register(Challenge)
|
||||
admin.site.register(ChallengeTag)
|
||||
admin.site.register(UserChallenge)
|
||||
admin.site.register(UserChallenge)
|
||||
admin.site.register(Profile)
|
||||
|
@@ -1,5 +1,31 @@
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
import os
|
||||
|
||||
|
||||
def get_image_path(instance, filename):
|
||||
return os.path.join('icons', str(instance.id), filename)
|
||||
|
||||
|
||||
class Profile(models.Model):
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE)
|
||||
icon = models.ImageField(upload_to=get_image_path, default='default_icon.png')
|
||||
|
||||
def __str__(self):
|
||||
return self.user.username
|
||||
|
||||
|
||||
@receiver(post_save, sender=User)
|
||||
def create_user_profile(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
Profile.objects.create(user=instance)
|
||||
|
||||
|
||||
@receiver(post_save, sender=User)
|
||||
def save_user_profile(sender, instance, **kwargs):
|
||||
instance.profile.save()
|
||||
|
||||
|
||||
class ChallengeTag(models.Model):
|
||||
@@ -13,6 +39,7 @@ class ChallengeTag(models.Model):
|
||||
|
||||
class Challenge(models.Model):
|
||||
id = models.AutoField(primary_key=True)
|
||||
creator = models.ForeignKey(User)
|
||||
name = models.CharField(max_length=256)
|
||||
description = models.TextField(blank=True)
|
||||
tags = models.ManyToManyField(ChallengeTag, blank=True)
|
||||
|
@@ -124,3 +124,7 @@ STATIC_URL = '/static/'
|
||||
STATICFILES_DIRS = [
|
||||
os.path.join(BASE_DIR, 'static')
|
||||
]
|
||||
|
||||
MEDIA_URL = '/media/'
|
||||
|
||||
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
|
||||
|
@@ -25,4 +25,5 @@ urlpatterns = [
|
||||
url(r'^login/', views.login_view),
|
||||
url(r'^logout/', views.logout_view),
|
||||
url(r'^register/', views.register),
|
||||
] + static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS)
|
||||
] + static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS) + \
|
||||
static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
|
@@ -14,15 +14,24 @@ def index(request):
|
||||
|
||||
challenges = Challenge.objects.all()
|
||||
challenge_pair = UserChallenge.objects.all()
|
||||
users = User.objects.all()
|
||||
user_data = []
|
||||
|
||||
print(challenge_pair)
|
||||
for u in users:
|
||||
data = {
|
||||
'user': u,
|
||||
'total_challenges': len(UserChallenge.objects.filter(user=u))
|
||||
}
|
||||
user_data.append(data)
|
||||
|
||||
for item in challenge_pair:
|
||||
print(item.user.username)
|
||||
template_dict = {
|
||||
'logged_in': user,
|
||||
'challenges': challenges,
|
||||
'challenge_pair': challenge_pair,
|
||||
'users': user_data
|
||||
}
|
||||
|
||||
return render(request, 'index.html', {'logged_in': user,
|
||||
'challenges': challenges,
|
||||
'challenge_pair': challenge_pair})
|
||||
return render(request, 'landing.html', template_dict)
|
||||
|
||||
|
||||
@csrf_protect
|
||||
@@ -72,3 +81,14 @@ def login_view(request):
|
||||
def logout_view(request):
|
||||
logout(request)
|
||||
return HttpResponse('logged out')
|
||||
|
||||
|
||||
def challenge(request):
|
||||
if request.method == 'POST':
|
||||
if not request.user.is_authenticated:
|
||||
return HttpResponse('not logged in')
|
||||
challenge_name = request.POST['challenge_name']
|
||||
challenge_description = request.POST['challenge_discription']
|
||||
tags = []
|
||||
challenge = Challenge(creator=request.user, name=challenge_name, description=challenge_description, tags=tags)
|
||||
challenge.save()
|
||||
|
Reference in New Issue
Block a user