Working on homepage.
parent
cee8a2f64c
commit
d75757bd9c
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -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.
|
@ -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 %}
|
||||
|
||||
|
|
4
urls.py
4
urls.py
|
@ -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)),
|
||||
|
||||
|
|
21
views.py
21
views.py
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue