Commit dcc0cd3d authored by Arnaud Fabre's avatar Arnaud Fabre
Browse files

Improves frontend management

- Move static files from core app to root
- Uses bower to manage front-end 3rd parties libs
- Uses gulp to build front-end
parent 5f05fd12
{
"directory": "core/static/libs"
"directory": "static/libs"
}
*.sqlite3
celerybeat-*
core/static/libs/*
memopol/config.json
# SASS Cache
.sass-cache
# libs
static/libs
node_modules
CACHE/*
# compiled css
static/stylesheets/*.min.css
# Emacs backup
# From https://github.com/github/gitignore/blob/master/Python.gitignore
# settings
memopol/config.json
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
# Distribution / packaging
.Python
env/
venv/
ve/
build/
var/
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.cache
nosetests.xml
coverage.xml
# Translations
*.mo
*.pot
# Django stuff:
*.log
@font-face{
font-family: 'propagandaregular';
src: url('../font/propagan-webfont.eot');
src: url('../font/propagan-webfont.eot?#iefix') format('embedded-opentype'), url('../font/propagan-webfont.woff') format('woff'), url('../font/propagan-webfont.ttf') format('truetype'), url('../font/propagan-webfont.svg#propagandaregular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face{
font-family: 'sansus_webissimoitalic';
src: url('../font/sansus_webissimo-italic-webfont-webfont.eot');
src: url('../font/sansus_webissimo-italic-webfont-webfont.eot?#iefix') format('embedded-opentype'), url('../font/sansus_webissimo-italic-webfont-webfont.woff') format('woff'), url('../font/sansus_webissimo-italic-webfont-webfont.ttf') format('truetype'), url('../font/sansus_webissimo-italic-webfont-webfont.svg#sansus_webissimoitalic') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face{
font-family: 'sansus_webissimoregular';
src: url('../font/sansus_webissimo-regular-webfont-webfont.eot');
src: url('../font/sansus_webissimo-regular-webfont-webfont.eot?#iefix') format('embedded-opentype'), url('../font/sansus_webissimo-regular-webfont-webfont.woff') format('woff'), url('../font/sansus_webissimo-regular-webfont-webfont.ttf') format('truetype'), url('../font/sansus_webissimo-regular-webfont-webfont.svg#sansus_webissimoregular') format('svg');
font-weight: normal;
font-style: normal;
}
td {
vertical-align: middle;
}
body {
background-color: #E5E5E5;
font-family: "Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;
font-size: 14px;
line-height: 1;
}
#header {
padding: 0px 20px;
height: 78px;
line-height: 45px;
}
.row {
width: 940px;
max-width: 100%;
min-width: 768px;
margin: 0px auto;
}
#header, #footer {
background: none repeat scroll 0px 0px #5B8EDC;
color: #FFF;
vertical-align: middle;
}
#header img {
float: left;
width: 74px;
}
#header h1 {
margin: 0px;
}
h1 {
font-size: 44px;
}
#header h1 a {
line-height: 10px;
font-family: propagandaregular;
font-size: 26px;
}
#header a {
color: #FFF;
text-decoration: none;
}
#header p {
font-style: italic;
padding-left: 20px;
margin-bottom: 17px;
}
p {
font-family: "Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;
font-weight: normal;
font-size: 14px;
line-height: 1.6;
margin-bottom: 17px;
}
.nav-bar {
margin-top: 0px;
background-color: #FFF;
border-bottom: 1px solid #EEE;
height: 30px;
line-height: 30px;
height: 40px;
padding: 0px;
}
.nav-bar > li {
float: left;
display: block;
position: relative;
padding: 0px;
margin: 0px;
line-height: 38px;
}
.nav-bar > li > a {
padding: 0px 20px;
font-size: 14px;
text-decoration: none;
color: #000;
}
li {
text-decoration: none;
list-style: inside;
}
.panel. {
background: none repeat scroll 0% 0% #5B8EDC;
color: #FFF;
border-color: #2284A1;
box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5) inset;
}
.panel {
background: none repeat scroll 0% 0% #F2F2F2;
border: 1px solid #E6E6E6;
margin: 0px 20px 22px;
padding: 20px;
}
h1, h2, h3, h4, h5, h6 {
font-family: "Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;
font-weight: bold;
color: #222;
text-rendering: optimizelegibility;
line-height: 1.1;
margin-bottom: 14px;
margin-top: 14px;
}
h2, h3, h4 {
font-family: sansus_webissimoregular;
}
h2 { font-size: 2em; }
h3 { font-size: 1.5em; }
h3 small { font-size: 0.6em; }
.column, .columns {
float: left;
min-height: 1px;
padding: 0px 0px;
position: relative;
}
.large-12.main {
background: white;
padding: 10px;
width: 920px;
}
.large-8 {
width: 66.6667%;
} .large-4 {
width: 33.3333%;
}
#footer {
padding: 20px 0px;
text-align: center;
line-height: 20px;
font-size: 14px;
}
#footer ul {
margin-bottom: 11px;
}
#footer li {
display: inline;
}
#footer a {
color: #FFF;
text-decoration: underline;
}
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}
- extends "base.html"
- block content
.row
.large-8.columns
.col-md-8
%p
Actually Memopol is reachable only in <b>reduced functionality mode</b>.
By the way, you could access to <a href="{% url 'legislature:representative_index' %}">the actual list of MEPs</a>.
Memopol is reachable only in <b>reduced functionality mode</b>.
By the way, you could access to
<a href="{% url 'legislature:representative_index' %}">the list of MEPs</a>.
%p
You can help on building the new Memopol by <a href="https://wiki.laquadrature.net/Projects/Memopol/Roadmap">coding, translating, de signing, funding, etc...</a>.
%p
<a href="http://memopol.org">Memopol Blog</a> is available as well as the new <a href="http://git.laquadrature.net/memopol/memopol_political_memory/issues">bugtracking system</a>
.large-4.columns
- include "core/blocks/what_is_memopol.html"
.col-md-4
.panel.panel-default
.panel-body
%p
<a href="http://memopol.org">Memopol Blog</a> is available as well as the new
<a href="http://git.laquadrature.net/memopol/memopol/issues">
bugtracking system</a>
%h3
What is memopol?
%p
Political Memory is a tool designed by La Quadrature du Net to help
European citizens to reach members of European Parliament (MEPs) and
track their voting records on issues related to fundamental
freedoms online. <em><a href="">More...</a></em>
var gulp = require('gulp');
var less = require('gulp-less');
var watch = require('gulp-watch');
var minifycss = require('gulp-minify-css');
var rename = require('gulp-rename');
var gzip = require('gulp-gzip');
var livereload = require('gulp-livereload');
var gzip_options = {
threshold: '1kb',
gzipOptions: {
level: 9
}
};
var less_src = 'static/less/*.less';
/* Compile Our Sass */
gulp.task('less', function() {
return gulp.src(less_src)
.pipe(less())
.pipe(gulp.dest('static/stylesheets'))
.pipe(rename({suffix: '.min'}))
.pipe(minifycss())
.pipe(gulp.dest('static/stylesheets'))
// .pipe(gzip(gzip_options))
// .pipe(gulp.dest('static/stylesheets'))
.pipe(livereload());
});
/* Watch Files For Changes */
gulp.task('watch', function() {
livereload.listen();
gulp.watch(less_src, ['less']);
/* Trigger a live reload on any Django template changes */
gulp.watch('**/templates/*').on('change', livereload.changed);
});
gulp.task('default', ['less', 'watch']);
......@@ -163,10 +163,13 @@ COMPRESS_ROOT = 'static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# other finders..
# Compressor finder
'compressor.finders.CompressorFinder',
)
# Use compressor even in debug
COMPRESS_ENABLED = True
COMPRESS_PRECOMPILERS = (
# ('text/coffeescript', 'coffee --compile --stdio'),
('text/less', 'lessc {infile} {outfile}'),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment