Working on homepage.

master
Nick Sergeant 2013-02-18 00:12:13 -05:00
parent cee8a2f64c
commit d75757bd9c
12 changed files with 144 additions and 41 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,14 +1,22 @@
// Fonts
$Helvetica: 'Helvetica Neue', Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif;
$Consolas: Consolas, Menlo, "Courier New", monospace;
$RockwellBoldItalic: 'Rockwell Bold Italic', 'Courier Bold', Courier, Georgia, Times, 'Times New Roman', serif;
$Rockwell: 'Rockwell', 'Courier Bold', Courier, Georgia, Times, 'Times New Roman', serif;
@font-face {
font-family: 'Rockwell';
src: url('/static/fonts/rockwell.eot');
src: url('/static/fonts/rockwell.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/rockwell.woff') format('woff'),
url('/static/fonts/rockwell.ttf') format('truetype');
src: url('/static/fonts/rockwell-standard.eot');
src: url('/static/fonts/rockwell-standard.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/rockwell-standard.woff') format('woff'),
url('/static/fonts/rockwell-standard.ttf') format('truetype');
}
@font-face {
font-family: 'Rockwell Bold Italic';
src: url('/static/fonts/rockwell-bold-italic.eot');
src: url('/static/fonts/rockwell-bold-italic.eot?#iefix') format('embedded-opentype'),
url('/static/fonts/rockwell-bold-italic.woff') format('woff'),
url('/static/fonts/rockwell-bold-italic.ttf') format('truetype');
}
// Mixins
@ -129,7 +137,7 @@ header.main {
a {
color: #F9F9F9;
display: block;
font: normal 36px $Rockwell;
font: normal 36px $RockwellBoldItalic;
float: left;
letter-spacing: -1px;
margin: 11px 0 0 16px;
@ -1510,7 +1518,7 @@ a.go-pro {
span.snipt {
color: #797979;
font: normal 14px $Rockwell;
font: normal 14px $RockwellBoldItalic;
}
span.pro {
color: #3299B7;
@ -1797,7 +1805,7 @@ body.pro {
background: transparent url('/static/images/pro-hero-bg.png') top left repeat;
border-bottom: 1px solid #DDDDDD;
color: #797979;
font: normal 36px $Rockwell;
font: normal 36px $RockwellBoldItalic;
padding: 30px 0;
position: relative;
text-align: center;
@ -2373,9 +2381,25 @@ body.editing {
}
}
body.homepage {
a.button {
background: #54737E;
border: 2px solid white;
color: white;
font: bold 16px $Helvetica;
display: inline-block;
margin-left: 20px;
padding: 5px 20px 7px 20px;
text-decoration: none;
@include border-radius;
&:hover {
background: #39525C;
}
}
header.main {
background: #415A63 url('../images/homepage-header-bg.jpg') top center no-repeat;
height: 450px;
@include inset-box-shadow(0, -6px, 17px, #31454D);
div.inner {
border-left: 0;
@ -2405,21 +2429,68 @@ body.homepage {
color: white;
text-decoration: none;
}
&.login {
background: #54737E;
border: 2px solid white;
&.button {
color: white;
margin-left: 20px;
@include border-radius;
&:hover {
background: #39525C;
}
}
}
}
}
}
}
div.sub {
padding: 50px 0;
text-align: center;
h2 {
color: white;
font: normal 28px $RockwellBoldItalic;
margin: 0;
}
h3 {
color: #A4C9CD;
font: normal 20px $Rockwell;
margin: 0;
margin-top: 10px;
}
}
}
section.coders {
overflow: hidden;
padding: 30px 0 70px 0;
text-align: center;
h4 {
color: #344547;
font: normal 20px $Rockwell;
margin: 0;
margin-bottom: 15px;
}
a.button {
background: #D4F5F9;
border-color: #88D2DC;
color: #3B525A;
margin-bottom: 30px;
&:hover {
background: #e9f7f9;
}
}
div.faces {
border: 1px solid #909090;
border-left: 0;
border-right: 0;
height: 50px;
margin: 0 auto;
width: 2500px;
span {
background-position: center center;
background-repeat: no-repeat;
display: block;
height: 50px;
float: left;
width: 50px;
}
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,7 @@
{% extends "base.html" %}
{% load humanize %}
{% block sub-header %}{% endblock %}
{% block keyboard-shortcuts %}{% endblock %}
{% block inline-js %}{% endblock %}
@ -12,27 +14,40 @@
{% block header %}
<header class="main">
<div class="inner">
<h1>
<a href="/">snip<span>t</span></a>
</h1>
<nav>
<ul>
<li>
<a href="#">Top Posts</a>
</li>
<li>
<a href="#">Top Snipts</a>
</li>
<li>
<a href="#">Top Members</a>
</li>
<li>
<a class="login" href="#">Log in</a>
</li>
</ul>
</nav>
<div class="group">
<h1>
<a href="/">snip<span>t</span></a>
</h1>
<nav>
<ul>
<li>
<a href="/public/">Public Snipts</a>
</li>
<li>
<a href="/search/">Search</a>
</li>
<li>
<a class="button" href="#">Log in</a>
</li>
</ul>
</nav>
</div>
<div class="sub">
<h2>The publishing platform for coders.</h2>
<h3>Store, share, blog, learn.</h3>
</div>
</div>
</header>
<section class="coders">
<h4>{{ users_count|intcomma }} coders, in 120+ countries, have stored {{ snipts_count|intcomma }} snipts in 145 languages.</h4>
<a href="/signup/" class="button">Sign up</a>
<div class="faces group">
{% for coder in coders %}
<a href="/{{ coder.username }}/" title="{{ coder.username }}">
<span style="background-image: url('https://secure.gravatar.com/avatar/{{ coder.email_md5 }}?s=50&d=mm');"></span>
{% endfor %}
</div>
</section>
{% endblock %}
{% block main %}

View File

@ -1,4 +1,4 @@
from views import (lexers, pro_signup, sitemap, tags, pro_signup_complete)
from views import (homepage, lexers, pro_signup, sitemap, tags, pro_signup_complete)
from django.conf.urls.defaults import include, patterns, url
from django.views.generic.simple import direct_to_template
from utils.forms import SniptRegistrationForm
@ -27,7 +27,7 @@ private_api.register(PrivateUserProfileResource())
urlpatterns = patterns('',
url(r'^homepage/$', direct_to_template, {'template': 'homepage.html'}),
url(r'^homepage/$', homepage),
url(r'^admin/', include(admin.site.urls)),

View File

@ -4,15 +4,32 @@ from annoying.decorators import ajax_request, render_to
from django.shortcuts import render_to_response
from django.template import RequestContext
from snipts.utils import get_lexers_list
from django.contrib.auth.models import User
from django.db.models import Count
from snipts.models import Snipt
from taggit.models import Tag
import stripe
import hashlib, stripe
from local_settings import STRIPE_API_KEY
@render_to('homepage.html')
def homepage(request):
random_users = User.objects.all().order_by('?')[:50]
coders = []
for user in random_users:
user.email_md5 = hashlib.md5(user.email.lower()).hexdigest()
coders.append(user)
return {
'coders': coders,
'snipts_count': Snipt.objects.all().count(),
'users_count': User.objects.all().count(),
}
@ajax_request
def lexers(request):
lexers = get_lexers_list()