From 24283c73f54cfce24acd00e578e8f5030d28332b Mon Sep 17 00:00:00 2001
From: Nicolas Joyard <joyard.nicolas@gmail.com>
Date: Fri, 10 Jun 2016 08:31:50 +0200
Subject: [PATCH] Move from LESS to SCSS

lesscpy is not fully LESS-compliant.
django-libsass relies on libsass, which is a fully compliant C/C++ implementation
of SASS/SCSS.
---
 .travis.yml                                                | 1 -
 memopol/settings.py                                        | 7 ++++++-
 .../DossiersTest.test_dossier_detail/content               | 2 +-
 .../DossiersTest.test_dossier_list/content                 | 2 +-
 .../response_fixtures/GroupListTest.test_chambers/content  | 2 +-
 .../GroupListTest.test_committees/content                  | 2 +-
 .../response_fixtures/GroupListTest.test_country/content   | 2 +-
 .../GroupListTest.test_delegations/content                 | 2 +-
 .../response_fixtures/GroupListTest.test_parties/content   | 2 +-
 .../content                                                | 2 +-
 .../content                                                | 2 +-
 .../content                                                | 2 +-
 .../content                                                | 2 +-
 .../content                                                | 2 +-
 setup.py                                                   | 2 +-
 static/{less/base.less => scss/base.scss}                  | 0
 static/{less/chambers.less => scss/chambers.scss}          | 0
 static/{less/external.less => scss/external.scss}          | 0
 static/{less/font.less => scss/font.scss}                  | 0
 static/{less/footer.less => scss/footer.scss}              | 0
 static/{less/groups.less => scss/groups.scss}              | 0
 static/{less/header.less => scss/header.scss}              | 0
 static/{less/legislature.less => scss/legislature.scss}    | 0
 static/{less/navigation.less => scss/navigation.scss}      | 0
 static/{less/positions.less => scss/positions.scss}        | 6 +++---
 static/{less/table.less => scss/table.scss}                | 0
 templates/base.html                                        | 2 +-
 27 files changed, 23 insertions(+), 19 deletions(-)
 rename static/{less/base.less => scss/base.scss} (100%)
 rename static/{less/chambers.less => scss/chambers.scss} (100%)
 rename static/{less/external.less => scss/external.scss} (100%)
 rename static/{less/font.less => scss/font.scss} (100%)
 rename static/{less/footer.less => scss/footer.scss} (100%)
 rename static/{less/groups.less => scss/groups.scss} (100%)
 rename static/{less/header.less => scss/header.scss} (100%)
 rename static/{less/legislature.less => scss/legislature.scss} (100%)
 rename static/{less/navigation.less => scss/navigation.scss} (100%)
 rename static/{less/positions.less => scss/positions.scss} (78%)
 rename static/{less/table.less => scss/table.scss} (100%)

diff --git a/.travis.yml b/.travis.yml
index cb3d3ad2..fb5eaa78 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,7 +11,6 @@ install:
 before_script:
 - bin/install_client_deps.sh
 script:
-- bash -c '! lesscpy -N static/less/base.less 2>&1 | grep Error'
 - flake8 . --exclude '*/migrations,docs,static' --ignore E128
 - py.test memopol representatives_positions representatives_recommendations
 - rm -rf db.sqlite
diff --git a/memopol/settings.py b/memopol/settings.py
index ffdd506a..60211147 100644
--- a/memopol/settings.py
+++ b/memopol/settings.py
@@ -224,9 +224,11 @@ if os.environ.get('OPENSHIFT_LOG_DIR', None):
     COMPRESS_ENABLED = True
     COMPRESS_OFFLINE = True
 
+
 COMPRESS_PRECOMPILERS = (
     # ('text/coffeescript', 'coffee --compile --stdio'),
-    ('text/less', 'lesscpy {infile}'),
+    # ('text/less', 'lesscpy {infile}'),
+    ('text/x-scss', 'django_libsass.SassCompiler'),
     # ('text/x-sass', 'sass {infile} {outfile}'),
     # ('text/x-scss', 'sass --scss {infile} {outfile}'),
     # ('text/stylus', 'stylus < {infile} > {outfile}'),
@@ -234,6 +236,9 @@ COMPRESS_PRECOMPILERS = (
 )
 
 
+LIBSASS_SOURCE_COMMENTS = False
+
+
 LOGGING = {
     'version': 1,
     'disable_existing_loggers': False,
diff --git a/memopol/tests/response_fixtures/DossiersTest.test_dossier_detail/content b/memopol/tests/response_fixtures/DossiersTest.test_dossier_detail/content
index 0f0f6ae3..353eed76 100644
--- a/memopol/tests/response_fixtures/DossiersTest.test_dossier_detail/content
+++ b/memopol/tests/response_fixtures/DossiersTest.test_dossier_detail/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/DossiersTest.test_dossier_list/content b/memopol/tests/response_fixtures/DossiersTest.test_dossier_list/content
index 5bc66b59..a24215d3 100644
--- a/memopol/tests/response_fixtures/DossiersTest.test_dossier_list/content
+++ b/memopol/tests/response_fixtures/DossiersTest.test_dossier_list/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/GroupListTest.test_chambers/content b/memopol/tests/response_fixtures/GroupListTest.test_chambers/content
index adfc2795..b0f7be98 100644
--- a/memopol/tests/response_fixtures/GroupListTest.test_chambers/content
+++ b/memopol/tests/response_fixtures/GroupListTest.test_chambers/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/GroupListTest.test_committees/content b/memopol/tests/response_fixtures/GroupListTest.test_committees/content
index 571bcbc0..1541979c 100644
--- a/memopol/tests/response_fixtures/GroupListTest.test_committees/content
+++ b/memopol/tests/response_fixtures/GroupListTest.test_committees/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/GroupListTest.test_country/content b/memopol/tests/response_fixtures/GroupListTest.test_country/content
index b4b29395..fdc0d680 100644
--- a/memopol/tests/response_fixtures/GroupListTest.test_country/content
+++ b/memopol/tests/response_fixtures/GroupListTest.test_country/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/GroupListTest.test_delegations/content b/memopol/tests/response_fixtures/GroupListTest.test_delegations/content
index 5db3980d..5f1f4727 100644
--- a/memopol/tests/response_fixtures/GroupListTest.test_delegations/content
+++ b/memopol/tests/response_fixtures/GroupListTest.test_delegations/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/GroupListTest.test_parties/content b/memopol/tests/response_fixtures/GroupListTest.test_parties/content
index 7893458c..b40d819a 100644
--- a/memopol/tests/response_fixtures/GroupListTest.test_parties/content
+++ b/memopol/tests/response_fixtures/GroupListTest.test_parties/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist/content b/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist/content
index f2b7e7dd..88607591 100644
--- a/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist/content
+++ b/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist_searchjoly/content b/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist_searchjoly/content
index 9348085d..adbf44f1 100644
--- a/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist_searchjoly/content
+++ b/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist_searchjoly/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby24_displaygrid/content b/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby24_displaygrid/content
index 9e22cc9f..15b6de58 100644
--- a/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby24_displaygrid/content
+++ b/memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby24_displaygrid/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby12_displaylist/content b/memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby12_displaylist/content
index e9f36f93..b351783d 100644
--- a/memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby12_displaylist/content
+++ b/memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby12_displaylist/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby24_displaylist/content b/memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby24_displaylist/content
index 9de3976c..50c266f3 100644
--- a/memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby24_displaylist/content
+++ b/memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby24_displaylist/content
@@ -10,7 +10,7 @@
       - The Political Memory of </title>
     
     
-    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.3c5ffeab3cbf.css" type="text/css" />
+    <link rel="stylesheet" href="/static/collected/libs/bootstrap/dist/css/bootstrap.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/fontawesome/css/font-awesome.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/libs/flag-icon-css/css/flag-icon.min.css" type="text/css" /><link rel="stylesheet" href="/static/collected/CACHE/css/base.9880026c7b85.css" type="text/css" />
     <script type="text/javascript" src="/static/collected/libs/jquery/dist/jquery.js"></script>
 <script type="text/javascript" src="/static/collected/libs/bootstrap/dist/js/bootstrap.js"></script>
     
diff --git a/setup.py b/setup.py
index dc9f6eae..a8f8ff20 100644
--- a/setup.py
+++ b/setup.py
@@ -15,6 +15,7 @@ setup(name='political-memory',
         'django-compressor>=1.6,<1.7',
         'django-datetime-widget>=0.9,<1.0',
         'django-filter>=0.11,<0.12',
+        'django-libsass==0.7.0',
         'django-representatives-votes==0.0.16',
         'django-representatives==0.0.22',
         'django-taggit>=0.17,<0.18',
@@ -22,7 +23,6 @@ setup(name='political-memory',
         'djangorestframework>=3.2.0,<3.3.0',
         'hamlpy>=0.82,<0.83',
         'ijson>=2.2,<2.3',
-        'lesscpy>=0.10.2,<0.11.0',
         'python-dateutil>=2.4,<2.5',
         'unicodecsv==0.14.1',
         'pytz==2015.7',
diff --git a/static/less/base.less b/static/scss/base.scss
similarity index 100%
rename from static/less/base.less
rename to static/scss/base.scss
diff --git a/static/less/chambers.less b/static/scss/chambers.scss
similarity index 100%
rename from static/less/chambers.less
rename to static/scss/chambers.scss
diff --git a/static/less/external.less b/static/scss/external.scss
similarity index 100%
rename from static/less/external.less
rename to static/scss/external.scss
diff --git a/static/less/font.less b/static/scss/font.scss
similarity index 100%
rename from static/less/font.less
rename to static/scss/font.scss
diff --git a/static/less/footer.less b/static/scss/footer.scss
similarity index 100%
rename from static/less/footer.less
rename to static/scss/footer.scss
diff --git a/static/less/groups.less b/static/scss/groups.scss
similarity index 100%
rename from static/less/groups.less
rename to static/scss/groups.scss
diff --git a/static/less/header.less b/static/scss/header.scss
similarity index 100%
rename from static/less/header.less
rename to static/scss/header.scss
diff --git a/static/less/legislature.less b/static/scss/legislature.scss
similarity index 100%
rename from static/less/legislature.less
rename to static/scss/legislature.scss
diff --git a/static/less/navigation.less b/static/scss/navigation.scss
similarity index 100%
rename from static/less/navigation.less
rename to static/scss/navigation.scss
diff --git a/static/less/positions.less b/static/scss/positions.scss
similarity index 78%
rename from static/less/positions.less
rename to static/scss/positions.scss
index 7c220d7c..50a36693 100644
--- a/static/less/positions.less
+++ b/static/scss/positions.scss
@@ -1,4 +1,4 @@
-@quote-size: 1em;
+$quote-size: 1em;
 
 .quote {
     width: 70%;
@@ -15,13 +15,13 @@
     p:first-child:before {
         content: '« ';
         font-style: italic;
-        font-size: @quote-size;
+        font-size: $quote-size;
     }
 
     p:last-child:after {
         content: ' »';
         font-style: italic;
-        font-size: @quote-size;
+        font-size: $quote-size;
         text-align: right;
     }
 }
\ No newline at end of file
diff --git a/static/less/table.less b/static/scss/table.scss
similarity index 100%
rename from static/less/table.less
rename to static/scss/table.scss
diff --git a/templates/base.html b/templates/base.html
index bb38eb94..cf1676db 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -14,7 +14,7 @@
     <link rel="stylesheet" href="{% static 'libs/bootstrap/dist/css/bootstrap.min.css' %}" type="text/css" />
     <link rel="stylesheet" href="{% static 'libs/fontawesome/css/font-awesome.min.css' %}" type="text/css" />
     <link rel="stylesheet" href="{% static 'libs/flag-icon-css/css/flag-icon.min.css' %}" type="text/css" />
-    <link rel="stylesheet" href="{% static 'less/base.less' %}" type="text/less" />
+    <link rel="stylesheet" href="{% static 'scss/base.scss' %}" type="text/x-scss" />
     {% endcompress %}
     {% compress js %}
     <script type="text/javascript" src="{% static 'libs/jquery/dist/jquery.js' %}"></script>
-- 
GitLab