initial, wip

home_site
Tomek Dubrownik 2013-01-27 04:23:25 +01:00
commit 39441ecc01
8 changed files with 312 additions and 0 deletions

8
main.cfg.dist Normal file
View File

@ -0,0 +1,8 @@
DATE_FORMAT = '%d-%m-%Y'
FEEDS = [
('redmine', 'https://redmine.hackerspace.pl/news.atom'),
('blog', 'https://blog.hackerspace.pl/feed/atom/'),
]
MAX_ENTRIES = 10

30
main.py Normal file
View File

@ -0,0 +1,30 @@
import feedparser
from flask import Flask, render_template
from time import mktime
from datetime import datetime
app = Flask('main')
app.config.from_pyfile('main.cfg')
def pull_feed_entries():
all_entries = []
for tag, url in app.config['FEEDS']:
entries = feedparser.parse(url).entries
for e in entries:
e.tag = tag
dt = datetime.fromtimestamp(mktime(e.updated_parsed))
e.updated_display = dt.strftime(app.config['DATE_FORMAT'])
all_entries.extend(entries)
all_entries.sort(key=lambda e: e.updated_parsed, reverse=True)
return all_entries[:app.config['MAX_ENTRIES']]
@app.route('/')
def main():
return render_template('main.html', entries=pull_feed_entries())
@app.route('/about')
def about():
return render_template('about.html')
if __name__ == '__main__':
app.run('0.0.0.0', 8080, debug=True)

93
static/main.css Normal file
View File

@ -0,0 +1,93 @@
a.news-title {
text-decoration: none;
color: #222
}
#hs_content .news h3 {
padding-left: 90px;
}
.news .date:before {
font-size: 14px;
font-weight: bold;
display: block;
font-family: 'Titillium Web', sans;
color: #eee;
border-radius: 5px;
margin: 8px 0 5px 5px;
padding: 0 0 2px 0;
vertical-align: middle;
text-align: center;
width: 80px;
margin-right: 0.5em;
}
.news .redmine .date:before {
content: "redmine";
background: #c3352b;
}
.news .blog .date:before {
content: "blog";
background: #21a;
}
ul.news {
list-style: none;
padding: 0;
}
ul.news li {
border-bottom: 2px groove #fff;
padding-top: 8px;
padding-right: 16px;
}
#hs_content .news li {
margin: 0;
}
#about {
border-bottom: 2px groove #fff;
padding: 5px;
}
span.date {
font-weight: bold;
display: block;
width: 90px;
text-align: center;
float: left;
}
span.author {
text-decoration: italic;
}
#left {
margin-right: 310px;
border-right: 2px groove #fff;
}
#right {
width: 310px;
float: right;
}
.clear {
clear: both;
display: block;
text-align: center;
}
.moar {
font-family: "Titillium Web", sans;
font-weight: bold;
// background: url("/static/cutcube.png");
background-color: #fd6;
// background-color: #2c702a;
color: #222;
padding: 4px;
border-radius: 5px;
text-align: center;
display: block;
}

31
templates/about.html Normal file
View File

@ -0,0 +1,31 @@
{% extends 'basic.html' %}
{% block title %}O Hackerspace Warszawa{% endblock %}
{% block content %}
<h1>O Hackerspace Warszawa</h1>
<p>
Hackerspace to przestrzeń stworzona i utrzymywana przez grupę kreatywnych osób, które łączy fascynacja
ogólno pojętym tworzeniem w duchu kultury hackerskiej. Przestrzeń stymuluje rozwój projektów, organizując i
użyczając potrzebnych narzędzi. Hackerspace nie zna barier, jeśli masz ciekawy pomysł i szukasz ludzi
chętnych do współpracy lub po prostu potrzebujesz miejsca i sprzętu - zapraszamy!
</p>
<p>
Jeżeli chcesz się do nas przyłączyć, przeczytaj dokładniejsze informacje o naszych celach i zapisz się
na jedną z naszych list mailingowych. Spotykamy się we wtorki o 22 drugiej na kanale IRC #hackerspace-pl
(irc.freenode.net) oraz w czwartki na żywo.
</p>
<h3>Cele</h3>
<ul>
<li>Chcemy stworzyć miejsce, w którym ludzie zainteresowani techniką, elektroniką, informatyką, mechaniką, sztuką i pokrewnymi dziedzinami tworzenia mogą się zbierać aby rozmawiać, wymieniać się pomysłami i rozwiązaniami, oraz pracować nad projektami.</li>
<li>Chcemy żeby miejsce to było w Warszawie, w miejscu zapewniającym optymalny dojazd, zwłaszcza komunikacją publiczną.</li>
<li>Chcemy niezależności, dlatego uznajemy że optymalnym źródłem finansowania są obowiązkowe składki. Składki zostaną wykorzystane na finansowanie miejsca oraz, gdy to zostanie zapewnione, na zakup narzędzi.</li>
<li>Chcemy żeby miejsce było otwarte na nowych ludzi i nowe pomysły.</li>
<li>Chcemy zebrać narzędzia i wiedzę jak się ich używa w miejscu umożliwiającym ich używanie.</li>
<li>Chcemy się rozwijać i poznawać nowe dziedziny wiedzy</li>
<li>Chcemy się dobrze bawić.</li>
</ul>
<h3>Lokalizacja</h3>
<p>
Warszawski Hackerspace znajduje się w budynku ITR, w piwnicy. Sam ITR mieści się na ulicy Długiej 44, tuż obok Metra Ratusz-Arsenał.
</p>
<div id="map"><img src="/static/mapka.png" style="border-radius: 4px;" /></div>
{% endblock %}

62
templates/basic.html Normal file
View File

@ -0,0 +1,62 @@
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
{% block head %}
<meta charset="utf-8" />
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /><![endif]-->
<title>{% block title %}{% endblock %}</title>
<script src="https://static.hackerspace.pl/js/jquery.min.js"></script>
{% block checkinator_script %}
<script src="https://static.hackerspace.pl/js/checkinator-header.js"></script>
{% endblock %}
{% block page_scripts %}
{% endblock %}
{% block basic_style %}
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" href="https://static.hackerspace.pl/img/favicon.ico"/>
<link rel="apple-touch-icon" href="https://static.hackerspace.pl/img/glider.png"/>
<link rel="stylesheet" href="https://static.hackerspace.pl/fonts/news-cycle/stylesheet.css"/>
<link rel="stylesheet" href="https://static.hackerspace.pl/fonts/titillium/stylesheet.css"/>
<link rel="stylesheet" href="https://static.hackerspace.pl/css/style.css"/>
{% endblock %}
{% block page_style %}
{% endblock %}
{% endblock %}
</head>
<body>
{% block body %}
<a name="top"></a>
{% block header %}
{% include 'header.html' %}
{% endblock %}
<div id="hs_main">
{% block main %}
<div id="hs_rotimage">
{% block rotimage %}
{% include 'rotimage_at.html' %}
{% block rotimage_login %}
<div class="hs_login_bar">
{% block login %}
<ul>
<li><a class="action user" href="https://ldap.hackerspace.pl">Member profile</a></li>
</ul>
{% endblock %}
</div>
{% endblock %}
{% endblock %}
</div>
{% endblock %}
<div id="hs_content">
{% block content %}
{% endblock %}
</div>
</div>
{% block footer %}
{% endblock %}
{% endblock %}
</body>
</html>

11
templates/header.html Normal file
View File

@ -0,0 +1,11 @@
<header id="hs_branding">
<a id="hs_header" href="https://hackerspace.pl/">Warsaw Hackerspace</a>
<ul id="hs_header_menu">
<li><a href="https://hackerspace.pl/">about</a></li>
<li><a href="https://blog.hackerspace.pl">blog</a></li>
<li><a href="https://wiki.hackerspace.pl">wiki</a></li>
<li><a href="https://code.hackerspace.pl">code</a></li>
<li><a href="https://webchat.hackerspace.pl">chat</a></li>
<li><a href="https://redmine.hackerspace.pl">tasks</a></li>
</ul>
</header>

71
templates/main.html Normal file
View File

@ -0,0 +1,71 @@
{% extends 'basic.html' %}
{% block page_scripts %}
<script type="text/javascript" src="https://widgets.twimg.com/j/2/widget.js"></script>
{% endblock %}
{% block page_style %}
<link rel="stylesheet" href="static/main.css"/>
{% endblock %}
{% block title %}Hackerspace Warszawa - strona główna{% endblock %}
{% block content %}
<div id="right">
<h1 class"mail">Listy mailingowe</h1>
<h1 class="twitter">Twitter</h1>
<script type="text/javascript">
new TWTR.Widget({
version: 2,
type: 'profile',
rpp: 5,
interval: 6000,
theme: {
shell: {
background: '#eee',
color: '#222'
},
tweets: {
background: '#eee',
color: '#222',
links: '#001ea6'
}
},
features: {
scrollbar: false,
loop: false,
live: false,
hashtags: true,
timestamp: true,
avatars: true,
behavior: 'all'
}
}).render().setUser('hackerspacepl').start();
</script>
</div>
<div id="left">
<div id="about">
<h1>Co to Hackerspace?</h1>
<p>
Hackerspace to przestrzeń stworzona i utrzymywana przez grupę kreatywnych osób, które łączy fascynacja
ogólno pojętym tworzeniem w duchu <a href="http://ultra.ap.krakow.pl/~raj/hacker-howto.html">kultury
hackerskiej</a>. Przestrzeń stymuluje rozwój projektów, organizując i użyczając potrzebnych narzędzi.
Hackerspace nie zna barier, jeśli masz ciekawy pomysł i szukasz ludzi chętnych do współpracy lub po
prostu potrzebujesz miejsca i sprzętu - zapraszamy!
</p>
<a href="/about" class="moar">Gdzie jesteśmy? Jak do nas dołączyć? Dowiedz się więcej!</a>
</div>
<h1>Nowości</h1>
<ul class="news">
{% for e in entries %}
<li class="{{e.tag}}">
<a class="news-title" href="{{e.link}}">
<span class="date">{{e.updated_display}}</span>
<h3>{{e.title|safe}}</h3>
by <span class="author">{{e.author_detail.name or 'Anonymous'}}</span>
</a>
<p class="news">
{{e.summary|safe}}
</p>
</li>
{% endfor %}
</ul>
</div>
<span class="clear"><a href="#top">↑ Powrót na górę ↑</span>
{% endblock %}

View File

@ -0,0 +1,6 @@
<div id="status" style="display: none;">
<div id="status-tooltip" style="display: none;">
<p>Refreshing...</p>
</div>
<img src="https://static.hackerspace.pl/img/status-open.png" alt="Sorry, we're open! - The Warsaw Hackerspace is open right now." />
</div>