# Path: wtfhack/base/models.py
# class Repo(models.Model):
#     # Full name is required
#     full_name = models.CharField(max_length=500, unique=True, null=False)
#     url = models.URLField(null=True)
#     language = models.ForeignKey(Language, related_name='repos')
#     description = models.CharField(max_length=500, null=True, blank=True)
# 
# 
#     def save(self, *args, **kwargs):
#         '''Override save method to set default url.'''
#         BASE = 'https://github.com/'
#         # Default url to base url + full_name
#         if not self.url:
#             self.url = BASE + self.full_name
#         super(Repo, self).save(*args, **kwargs)
# 
# 
#     def __unicode__(self):
#         return "{full_name}: {language}".format(full_name=self.full_name,
#                                                 language=self.language.name)
# 
# class Language(models.Model):
#     name = models.CharField(max_length=40, null=False)
#     learn_url = models.URLField(null=True, blank=True)
# 
#     @staticmethod
#     def all():
#         return [l.name for l in Language.objects.order_by('name')]
#     def __unicode__(self):
#         return self.name


import random
from django.core.urlresolvers import reverse
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect
from django.utils import simplejson
from django.views.decorators.csrf import ensure_csrf_cookie
from wtfhack.base.models import Repo, Language
from social_auth.models import UserSocialAuth
from github import Github
""" Views for the base application """




def home(request):
    """ View for the home page """
    if Repo.objects.exists():
        languages = Language.all()
        random_language = random.choice(languages)
        return HttpResponseRedirect(reverse('get_repo', args=(random_language,)))
    else:
        return render(request, 'base/home.html', {})


def get_repo(request, language):
    language_obj = get_object_or_404(Language, name=language)
    repos = Repo.objects.filter(language=language_obj)
    # If there are repos with the chosen language
    if repos.exists():
        # Choose a random repo
        repo = random.choice(repos)
    else:
        repo = None

    return render(request, 
                    'base/home.html', 

# Path: wtfhack/base/models.py
# class Repo(models.Model):
#     # Full name is required
#     full_name = models.CharField(max_length=500, unique=True, null=False)
#     url = models.URLField(null=True)
#     language = models.ForeignKey(Language, related_name='repos')
#     description = models.CharField(max_length=500, null=True, blank=True)
# 
# 
#     def save(self, *args, **kwargs):
#         '''Override save method to set default url.'''
#         BASE = 'https://github.com/'
#         # Default url to base url + full_name
#         if not self.url:
#             self.url = BASE + self.full_name
#         super(Repo, self).save(*args, **kwargs)
# 
# 
#     def __unicode__(self):
#         return "{full_name}: {language}".format(full_name=self.full_name,
#                                                 language=self.language.name)
# 
# class Language(models.Model):
#     name = models.CharField(max_length=40, null=False)
#     learn_url = models.URLField(null=True, blank=True)
# 
#     @staticmethod
#     def all():
#         return [l.name for l in Language.objects.order_by('name')]
#     def __unicode__(self):
#         return self.name


# Path: wtfhack/base/views.py
import random
from django.core.urlresolvers import reverse
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect
from django.utils import simplejson
from django.views.decorators.csrf import ensure_csrf_cookie
from wtfhack.base.models import Repo, Language
from social_auth.models import UserSocialAuth
from github import Github

""" Views for the base application """




def home(request):
    """ View for the home page """
    if Repo.objects.exists():
        languages = Language.all()
        random_language = random.choice(languages)
        return HttpResponseRedirect(reverse('get_repo', args=(random_language,)))
    else:
        return render(request, 'base/home.html', {})


def get_repo(request, language):
    language_obj = get_object_or_404(Language, name=language)
    repos = Repo.objects.filter(language=language_obj)
    # If there are repos with the chosen language
    if repos.exists():
        # Choose a random repo
        repo = random.choice(repos)
    else:
        repo = None

    return render(request, 
                    'base/home.html', 

                    {'all_languages': Language.objects.order_by('name'),