Hello Hackers,

We regenerated the add-readme.diff to include additions to .gitignore to
ignore the compiled python files and the compiled CSS files and we added to
yarn.lock file.

Thanks,

Joao & Sarah


On Fri, Jul 14, 2017 at 10:24 AM, Joao De Almeida Pereira <
jdealmeidapere...@pivotal.io> wrote:

> Hello Dave,
> Instead of using the current library we found another one that compiles
> the SCSS when the application starts.
> We recreated the patches we sent before.
>
> Thanks
> Joao & Sarah
>
> On Fri, Jul 14, 2017 at 5:42 AM, Dave Page <dp...@pgadmin.org> wrote:
>
>>
>>
>> On Wed, Jul 12, 2017 at 9:27 PM, George Gelashvili <
>> ggelashv...@pivotal.io> wrote:
>>
>>> Hi Dave,
>>>
>>>
>>>> Hmm, seems like the dependencies are broken. Adding them throws me down
>>>> what seems like a rabbit hole of manual installation, starting with:
>>>>
>>>> (pgaweb) piranha:pgaweb dpage$ pip install -r requirements.txt
>>>> Requirement already satisfied: Django==1.8.18 in
>>>> /Users/dpage/.virtualenvs/pgaweb/lib/python2.7/site-packages (from -r
>>>> requirements.txt (line 1))
>>>> Requirement already satisfied: psycopg2==2.7.1 in
>>>> /Users/dpage/.virtualenvs/pgaweb/lib/python2.7/site-packages (from -r
>>>> requirements.txt (line 2))
>>>> Collecting libsass==0.13.2 (from -r requirements.txt (line 3))
>>>>   Using cached libsass-0.13.2.tar.gz
>>>> Could not import setuptools which is required to install from a source
>>>> distribution.
>>>> Traceback (most recent call last):
>>>>   File 
>>>> "/Users/dpage/.virtualenvs/pgaweb/lib/python2.7/site-packages/pip/req/req_install.py",
>>>> line 387, in setup_py
>>>>     import setuptools  # noqa
>>>>   File 
>>>> "/Users/dpage/.virtualenvs/pgaweb/lib/python2.7/site-packages/setuptools/__init__.py",
>>>> line 10, in <module>
>>>>     from six.moves import filter, map
>>>> ImportError: No module named six.moves
>>>>
>>>> Perhaps the entire dependency tree should be added to requirements.txt?
>>>>
>>>>
>>>
>>> What version of pip runs in your pyenv? We're able to pip install
>>> requirements inside a new 2.7.10 virtualenv, that gets created with pip
>>> 9.0.1 by default.
>>>
>>
>> Apologies - my virtual env was messed up.
>>
>>
>>>
>>>
>>>> - Scripts to yarn to compile the SCSS and run the application
>>>>>
>>>> - Add startapp.sh script to start the application
>>>>>
>>>>
>>>> The application runs under uWSGI - it's not going to be started via a
>>>> script. It's auto-updated periodically from git, and uWSGI will restart
>>>> when necessary so if any pre-processing of files is required, that needs to
>>>> be done at startup automatically.
>>>>
>>>
>>> Okay, so it sounds like shelling out to yarn in wsgi would resolve this.
>>>
>>
>> I think your suggestion below would be cleaner.
>>
>>
>>
>>> Otherwise, what does the auto-update process look like? perhaps
>>> compilation steps belong there rather than in app startup.
>>>
>>
>> It's really just a GIT pull. uWSGI then detects the change and restarts
>> that app. We could certainly have it do "git pull && yarn install && yarn
>> run scss" or similar.
>>
>> Now that said, the scss doesn't actually seem to build for me. I had to
>> make 2 changes to get anywhere:
>>
>> 1) Change the tag in base.html to:
>>
>> <link href="{% sass_src 'css/pgaweb.scss' %}" rel="stylesheet"
>> type="text/css" />
>> 2) Remove the STATIC_ROOT directive from settings.py (so it didn't try to
>> compile to /static) and replace with COMPRESS_ROOT='static/' and
>> SASS_PROCESSOR_ROOT='static/'.
>>
>> That left me with a running site, that seems to behave as expected, at
>> least when run standalone.
>>
>> Patch attached - comments?
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>
diff --git a/.gitignore b/.gitignore
index a7d59b0..3c18e84 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
 .DS_Store
 .idea
 node_modules/
-pgaweb/settings_local.py
\ No newline at end of file
+pgaweb/settings_local.py
+*.pyc
+static/COMPILED/
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f6ca619
--- /dev/null
+++ b/README.md
@@ -0,0 +1,67 @@
+PGAdmin Website
+
+# Installation instructions
+
+## Install Python dependencies
+Run the command:
+
+```bash
+pip install -r requirements.txt
+```
+
+## Create local settings file
+Create a the file pgaweb/settings_local.py from pgaweb/settings.py changing 
the needed options to run locally.
+For connection complaints inquiring about postgres "running locally and 
accepting connections on Unix domain socket...",
+you'll need to change the `HOST` from the postgres data directory to 
`localhost`.
+
+
+## Database setup
+
+### Create a new database
+
+Create a new database using the command
+
+```bash
+createdb pgaweb
+```
+
+### Migrate database
+
+```bash
+./manage.py migrate
+```
+
+### Populate the table
+
+You will at least need to:
+
+```bash
+./manage.py loaddata ./versions/fixtures/versions.json
+```
+
+If you want to see the other content in the site running locally,
+you will need to repeat this for the other fixtures:
+
+```bash
+./manage.py loaddata ./download/fixtures/packages.json
+./manage.py loaddata ./download/fixtures/distributions.json
+./manage.py loaddata ./download/fixtures/versions.json
+./manage.py loaddata ./download/fixtures/downloads.json
+./manage.py loaddata ./faq/fixtures/categories.json
+./manage.py loaddata ./faq/fixtures/faqs.json
+./manage.py loaddata ./news/fixtures/news.json
+```
+
+## Install frontend requirements
+
+```bash
+pushd static
+yarn install
+popd
+```
+
+# Start the application
+
+```bash
+./manage.py runserver
+```
diff --git a/static/yarn.lock b/static/yarn.lock
new file mode 100644
index 0000000..18a2e2a
--- /dev/null
+++ b/static/yarn.lock
@@ -0,0 +1,25 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+bootstrap@^3.3.7:
+  version "3.3.7"
+  resolved 
"https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71";
+
+font-awesome@^4.7.0:
+  version "4.7.0"
+  resolved 
"https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133";
+
+font-mfizz@^2.3.0:
+  version "2.3.0"
+  resolved 
"https://registry.yarnpkg.com/font-mfizz/-/font-mfizz-2.3.0.tgz#f12582680d2f3d1fc111e94a44c0b57b3b5d5c05";
+
+fotorama@^4.6.4:
+  version "4.6.4"
+  resolved 
"https://registry.yarnpkg.com/fotorama/-/fotorama-4.6.4.tgz#7376961b6c7eeccb6c76411aceba7795ffe22eae";
+  dependencies:
+    jquery ">=1.8"
+
+jquery@>=1.8, jquery@^3.2.0:
+  version "3.2.1"
+  resolved 
"https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787";
diff --git a/pgaweb/settings.py b/pgaweb/settings.py
index 2ad99c9..7df43b8 100644
--- a/pgaweb/settings.py
+++ b/pgaweb/settings.py
@@ -49,7 +49,8 @@ INSTALLED_APPS = (
     'download',
     'faq',
     'news',
-    'versions'
+    'versions',
+    'static_precompiler'
 )
 
 MIDDLEWARE_CLASSES = (
@@ -121,7 +122,17 @@ USE_TZ = True
 # https://docs.djangoproject.com/en/1.8/howto/static-files/
 
 STATIC_URL = '/static/'
-STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
+STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'), os.path.join(BASE_DIR, 
'pgaweb', 'static'))
+
+STATIC_PRECOMPILER_ROOT = 'static'
+
+STATIC_PRECOMPILER_COMPILERS = (
+    ('static_precompiler.compilers.libsass.SCSS', {
+        "sourcemap_enabled": True,
+        # "load_paths": ["/static/css"],
+        "precision": 8,
+    }),
+)
 
 # Load local settings overrides
 from settings_local import *
diff --git a/static/css/pgaweb.css b/pgaweb/static/css/pgaweb.scss
similarity index 100%
rename from static/css/pgaweb.css
rename to pgaweb/static/css/pgaweb.scss
diff --git a/pgaweb/templates/pgaweb/base.html 
b/pgaweb/templates/pgaweb/base.html
index f5ea6a6..bece71f 100755
--- a/pgaweb/templates/pgaweb/base.html
+++ b/pgaweb/templates/pgaweb/base.html
@@ -1,4 +1,7 @@
 {% load staticfiles %}
+{% load compile_static %}
+{% load static %}
+
 <!DOCTYPE html>
 <html lang="en">
   <head>
@@ -15,7 +18,7 @@
     <link href="{% static 'node_modules/bootstrap/dist/css/bootstrap.min.css' 
%}" rel="stylesheet">
     <link href="{% static 'node_modules/font-mfizz/dist/font-mfizz.css' %}" 
rel="stylesheet" >
     <link href="{% static 'node_modules/font-awesome/css/font-awesome.min.css' 
%}" rel="stylesheet">
-    <link href="{% static 'css/pgaweb.css' %}?2017060701" rel="stylesheet">
+    <link rel="stylesheet" href="{% static "css/pgaweb.scss"|compile %}" />
 
     <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
     <!--[if lt IE 9]>
diff --git a/requirements.txt b/requirements.txt
index 6e83d47..be29f96 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,3 @@
 Django==1.8.18
 psycopg2==2.7.1
+django-static-precompiler[libsass]==1.6

Reply via email to