Merge pull request #26 from loleg/blog-support-155

Blog support and upgrades merged after testing & confirmation with the team.
This commit is contained in:
datalets 2019-09-09 18:34:56 +02:00 committed by GitHub
commit cfc8c82612
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 6372 additions and 333 deletions

4
.gitignore vendored
View File

@ -8,6 +8,7 @@
/env/
/venv/
/static/
/assets/
/media/
/tmp/
/.keys/
@ -15,4 +16,5 @@
/Vagrantfile.local
/docs/_build/
/node_modules/
/publichealth/static/libs/
/publichealth/static/libs
publichealth.home.json

View File

@ -1,3 +1,5 @@
const sass = require('node-sass');
module.exports = function(grunt) {
grunt.initConfig({
@ -21,12 +23,11 @@ module.exports = function(grunt) {
}
},
// TODO: switch to https://github.com/sindresorhus/grunt-sass
sass: { // Task
dev: { // Target
options: { // Target options
style: 'expanded',
sourcemap: 'none'
implementation: sass,
sourcemap: false
},
files: { // Dictionary of files
"./assets/css/main.css": "publichealth/static/css/main.scss"
@ -34,8 +35,9 @@ module.exports = function(grunt) {
},
dist: {
options: {
style: 'compressed',
sourcemap: 'none'
outputStyle: 'compressed',
implementation: sass,
sourcemap: true
},
files: {
"./assets/css/main.min.css": "publichealth/static/css/main.scss"
@ -71,10 +73,10 @@ module.exports = function(grunt) {
});
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-bg-shell');
grunt.loadNpmTasks('grunt-browser-sync');
grunt.loadNpmTasks('grunt-sass');
grunt.registerTask('default', ['imagemin', 'sass']);
grunt.registerTask('browser-sync', [
'bgShell',

14
Pipfile
View File

@ -10,21 +10,25 @@ tox = "*"
django-debug-toolbar = "*"
[packages]
"psycopg2-binary" = "*"
ConcurrentLogHandler = "*"
dj-database-url = "*"
django = "<2.2"
django-anymail = "*"
django-colorful = "*"
django-crispy-forms = "*"
django-el-pagination = "*"
django-libsass = "*"
django-redis = "*"
dj-database-url = "*"
django-social-share = "*"
elasticsearch = "*"
guess_language-spirit = "*"
gunicorn = "*"
libsass = "*"
Pillow = ">=4.0.0"
"psycopg2-binary" = "*"
puput = ">=1.0.0"
python-dotenv = "*"
stellar = "*"
wagtail = ">=2.0"
whitenoise = "*"
django-crispy-forms = "*"
python-dotenv = "*"
django = "==2.1.9"
django-toolbelt = "*"

254
Pipfile.lock generated
View File

@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "d398b7eb5fc9c5e555744d820c9b60a4da2812cb784c13fad44aa394d3fe9592"
"sha256": "8f27f179dfee8c8fc346274a85ac668576059c10350e3bcc4bb30b59e2671f79"
},
"pipfile-spec": 6,
"requires": {},
@ -65,21 +65,27 @@
"index": "pypi",
"version": "==0.5.0"
},
"dj-static": {
"hashes": [
"sha256:032ec1c532617922e6e3e956d504a6fb1acce4fc1c7c94612d0fda21828ce8ef"
],
"version": "==0.0.6"
},
"django": {
"hashes": [
"sha256:5052def4ff0a84bdf669827fdbd7b7cc1ac058f10232be6b21f37c6824f578da",
"sha256:bb72b5f8b53f8156280eaea520b548ac128a53f80cebc856c5e0fb555d44d529"
"sha256:33e4bb3f3268ecc362a7bd982c7f19fff30597c749fedbc1fd3773ebb82ec38c",
"sha256:f4351f1f921bb6c3de03e24cdba823365fb9a79a44f607ba2560e9e3b7f16ff3"
],
"index": "pypi",
"version": "==2.1.9"
"version": "==2.1.12"
},
"django-anymail": {
"hashes": [
"sha256:cb70bc28c188a4424b212bc91593cbc4247f2f21440fef2d209400c6dce7a18e",
"sha256:fdd87c6818b78f6d503e7dafeef679b6849613e0fe19129a30425914822630a3"
"sha256:7930d5f841c9be7e044a9e6bf3492aedf7aa641716b6c1f8f52411658f674131",
"sha256:dfa4a00a1608d40893cf818ed3632046a0bb01cf2a2bb3a64d31ff146151533a"
],
"index": "pypi",
"version": "==6.0.1"
"version": "==7.0.0"
},
"django-appconf": {
"hashes": [
@ -93,6 +99,7 @@
"sha256:49d3feefdabdf6a22931c12ce1ed0cbb4596e7754e66bd55c0f362c0a369e5cb",
"sha256:fd246f2fb297ed074dc4349966d33a1c82d0308b7fb0d6ef6e2e76b90cefffb7"
],
"index": "pypi",
"version": "==1.3"
},
"django-compressor": {
@ -114,6 +121,7 @@
"hashes": [
"sha256:4ef652f65350b754028f0c23d72dcd60461215b589f269bc23f78ee00b96d0f8"
],
"index": "pypi",
"version": "==3.2.4"
},
"django-libsass": {
@ -143,6 +151,7 @@
"sha256:27ce07b885e087ee7fa0fffc82d295b06a7b0bcf18d693ff8a619337bf7069e5",
"sha256:3627eb7fc8425dd45dabb7dfa17da5edec976e0d2c609c342aa763c7a24a69f0"
],
"index": "pypi",
"version": "==1.3.2"
},
"django-taggit": {
@ -152,6 +161,13 @@
],
"version": "==0.24.0"
},
"django-toolbelt": {
"hashes": [
"sha256:2711b7f9c46908a3f867f4ebb5c0c3f06dcc4f2cabe48a7a53292f6f1cbb83e5"
],
"index": "pypi",
"version": "==0.0.1"
},
"django-treebeard": {
"hashes": [
"sha256:c21db06a8d4943bf2a28d9d7a119058698fb76116df2679ecbf15a46a501de42"
@ -160,10 +176,10 @@
},
"djangorestframework": {
"hashes": [
"sha256:376f4b50340a46c15ae15ddd0c853085f4e66058f97e4dbe7d43ed62f5e60651",
"sha256:c12869cfd83c33d579b17b3cb28a2ae7322a53c3ce85580c2a2ebe4e3f56c4fb"
"sha256:5488aed8f8df5ec1d70f04b2114abc52ae6729748a176c453313834a9ee179c8",
"sha256:dc81cbf9775c6898a580f6f1f387c4777d12bd87abf0f5406018d32ccae71090"
],
"version": "==3.9.4"
"version": "==3.10.3"
},
"draftjs-exporter": {
"hashes": [
@ -173,11 +189,11 @@
},
"elasticsearch": {
"hashes": [
"sha256:cbc73831c63fa2824538df76fcb2c4be007b43dbd9e7788ae70ea6d24109925b",
"sha256:d1b176b87a7fb75dca82978c82a4023e8b21cbc98f4018cb51190fb0b8b43764"
"sha256:1ec2ed8ff9994a0b0961081f053c90819696c0d03da204b61b79d416606dd055",
"sha256:d9eda8d9696f55d7d394ade625a262985d7af762c0b9305b73d421dace41c4e7"
],
"index": "pypi",
"version": "==7.0.2"
"version": "==7.0.4"
},
"guess-language-spirit": {
"hashes": [
@ -237,39 +253,35 @@
},
"pillow": {
"hashes": [
"sha256:051de330a06c99d6f84bcf582960487835bcae3fc99365185dc2d4f65a390c0e",
"sha256:0ae5289948c5e0a16574750021bd8be921c27d4e3527800dc9c2c1d2abc81bf7",
"sha256:0b1efce03619cdbf8bcc61cfae81fcda59249a469f31c6735ea59badd4a6f58a",
"sha256:163136e09bd1d6c6c6026b0a662976e86c58b932b964f255ff384ecc8c3cefa3",
"sha256:18e912a6ccddf28defa196bd2021fe33600cbe5da1aa2f2e2c6df15f720b73d1",
"sha256:24ec3dea52339a610d34401d2d53d0fb3c7fd08e34b20c95d2ad3973193591f1",
"sha256:267f8e4c0a1d7e36e97c6a604f5b03ef58e2b81c1becb4fccecddcb37e063cc7",
"sha256:3273a28734175feebbe4d0a4cde04d4ed20f620b9b506d26f44379d3c72304e1",
"sha256:4c678e23006798fc8b6f4cef2eaad267d53ff4c1779bd1af8725cc11b72a63f3",
"sha256:4d4bc2e6bb6861103ea4655d6b6f67af8e5336e7216e20fff3e18ffa95d7a055",
"sha256:505738076350a337c1740a31646e1de09a164c62c07db3b996abdc0f9d2e50cf",
"sha256:5233664eadfa342c639b9b9977190d64ad7aca4edc51a966394d7e08e7f38a9f",
"sha256:5d95cb9f6cced2628f3e4de7e795e98b2659dfcc7176ab4a01a8b48c2c2f488f",
"sha256:7eda4c737637af74bac4b23aa82ea6fbb19002552be85f0b89bc27e3a762d239",
"sha256:801ddaa69659b36abf4694fed5aa9f61d1ecf2daaa6c92541bbbbb775d97b9fe",
"sha256:825aa6d222ce2c2b90d34a0ea31914e141a85edefc07e17342f1d2fdf121c07c",
"sha256:9c215442ff8249d41ff58700e91ef61d74f47dfd431a50253e1a1ca9436b0697",
"sha256:a3d90022f2202bbb14da991f26ca7a30b7e4c62bf0f8bf9825603b22d7e87494",
"sha256:a631fd36a9823638fe700d9225f9698fb59d049c942d322d4c09544dc2115356",
"sha256:a6523a23a205be0fe664b6b8747a5c86d55da960d9586db039eec9f5c269c0e6",
"sha256:a756ecf9f4b9b3ed49a680a649af45a8767ad038de39e6c030919c2f443eb000",
"sha256:b117287a5bdc81f1bac891187275ec7e829e961b8032c9e5ff38b70fd036c78f",
"sha256:ba04f57d1715ca5ff74bb7f8a818bf929a204b3b3c2c2826d1e1cc3b1c13398c",
"sha256:cd878195166723f30865e05d87cbaf9421614501a4bd48792c5ed28f90fd36ca",
"sha256:cee815cc62d136e96cf76771b9d3eb58e0777ec18ea50de5cfcede8a7c429aa8",
"sha256:d1722b7aa4b40cf93ac3c80d3edd48bf93b9208241d166a14ad8e7a20ee1d4f3",
"sha256:d7c1c06246b05529f9984435fc4fa5a545ea26606e7f450bdbe00c153f5aeaad",
"sha256:e9c8066249c040efdda84793a2a669076f92a301ceabe69202446abb4c5c5ef9",
"sha256:f227d7e574d050ff3996049e086e1f18c7bd2d067ef24131e50a1d3fe5831fbc",
"sha256:fc9a12aad714af36cf3ad0275a96a733526571e52710319855628f476dcb144e"
"sha256:0804f77cb1e9b6dbd37601cee11283bba39a8d44b9ddb053400c58e0c0d7d9de",
"sha256:0ab7c5b5d04691bcbd570658667dd1e21ca311c62dcfd315ad2255b1cd37f64f",
"sha256:0b3e6cf3ea1f8cecd625f1420b931c83ce74f00c29a0ff1ce4385f99900ac7c4",
"sha256:365c06a45712cd723ec16fa4ceb32ce46ad201eb7bbf6d3c16b063c72b61a3ed",
"sha256:38301fbc0af865baa4752ddae1bb3cbb24b3d8f221bf2850aad96b243306fa03",
"sha256:3aef1af1a91798536bbab35d70d35750bd2884f0832c88aeb2499aa2d1ed4992",
"sha256:3fe0ab49537d9330c9bba7f16a5f8b02da615b5c809cdf7124f356a0f182eccd",
"sha256:45a619d5c1915957449264c81c008934452e3fd3604e36809212300b2a4dab68",
"sha256:49f90f147883a0c3778fd29d3eb169d56416f25758d0f66775db9184debc8010",
"sha256:571b5a758baf1cb6a04233fb23d6cf1ca60b31f9f641b1700bfaab1194020555",
"sha256:5ac381e8b1259925287ccc5a87d9cf6322a2dc88ae28a97fe3e196385288413f",
"sha256:6153db744a743c0c8c91b8e3b9d40e0b13a5d31dbf8a12748c6d9bfd3ddc01ad",
"sha256:6fd63afd14a16f5d6b408f623cc2142917a1f92855f0df997e09a49f0341be8a",
"sha256:70acbcaba2a638923c2d337e0edea210505708d7859b87c2bd81e8f9902ae826",
"sha256:70b1594d56ed32d56ed21a7fbb2a5c6fd7446cdb7b21e749c9791eac3a64d9e4",
"sha256:76638865c83b1bb33bcac2a61ce4d13c17dba2204969dedb9ab60ef62bede686",
"sha256:7b2ec162c87fc496aa568258ac88631a2ce0acfe681a9af40842fc55deaedc99",
"sha256:7cee2cef07c8d76894ebefc54e4bb707dfc7f258ad155bd61d87f6cd487a70ff",
"sha256:7d16d4498f8b374fc625c4037742fbdd7f9ac383fd50b06f4df00c81ef60e829",
"sha256:b50bc1780681b127e28f0075dfb81d6135c3a293e0c1d0211133c75e2179b6c0",
"sha256:bd0582f831ad5bcad6ca001deba4568573a4675437db17c4031939156ff339fa",
"sha256:cfd40d8a4b59f7567620410f966bb1f32dc555b2b19f82a91b147fac296f645c",
"sha256:e3ae410089de680e8f84c68b755b42bc42c0ceb8c03dbea88a5099747091d38e",
"sha256:e9046e559c299b395b39ac7dbf16005308821c2f24a63cae2ab173bd6aa11616",
"sha256:ef6be704ae2bc8ad0ebc5cb850ee9139493b0fc4e81abcc240fb392a63ebc808",
"sha256:f8dc19d92896558f9c4317ee365729ead9d7bbcf2052a9a19a3ef17abbb8ac5b"
],
"index": "pypi",
"version": "==5.4.1"
"version": "==6.1.0"
},
"psutil": {
"hashes": [
@ -285,6 +297,22 @@
],
"version": "==5.6.3"
},
"psycopg2": {
"hashes": [
"sha256:128d0fa910ada0157bba1cb74a9c5f92bb8a1dca77cf91a31eb274d1f889e001",
"sha256:227fd46cf9b7255f07687e5bde454d7d67ae39ca77e170097cdef8ebfc30c323",
"sha256:2315e7f104681d498ccf6fd70b0dba5bce65d60ac92171492bfe228e21dcc242",
"sha256:4b5417dcd2999db0f5a891d54717cfaee33acc64f4772c4bc574d4ff95ed9d80",
"sha256:640113ddc943522aaf71294e3f2d24013b0edd659b7820621492c9ebd3a2fb0b",
"sha256:897a6e838319b4bf648a574afb6cabcb17d0488f8c7195100d48d872419f4457",
"sha256:8dceca81409898c870e011c71179454962dec152a1a6b86a347f4be74b16d864",
"sha256:b1b8e41da09a0c3ef0b3d4bb72da0dde2abebe583c1e8462973233fd5ad0235f",
"sha256:cb407fccc12fc29dc331f2b934913405fa49b9b75af4f3a72d0f50f57ad2ca23",
"sha256:d3a27550a8185e53b244ad7e79e307594b92fede8617d80200a8cce1fba2c60f",
"sha256:f0e6b697a975d9d3ccd04135316c947dd82d841067c7800ccf622a8717e98df1"
],
"version": "==2.8.3"
},
"psycopg2-binary": {
"hashes": [
"sha256:080c72714784989474f97be9ab0ddf7b2ad2984527e77f2909fcd04d4df53809",
@ -321,11 +349,11 @@
},
"puput": {
"hashes": [
"sha256:1128a61886183a86c0978050cf97a006a7d09f97d19ff9ee20fc163cba22d8ae",
"sha256:2dbe4999769ea812b14fb7db8cd5783a4b3d0e2d7e1a0a6a1711f86a7ecda3fc"
"sha256:4d952767b60b0a4969b0146a548586e9485b55ea3b047589d89d3dafd1fd0d0b",
"sha256:ffdcde19b0e08cc1d0a97da6df110a6428db9d2505ba387033ad5ba197eec05d"
],
"index": "pypi",
"version": "==1.0.4"
"version": "==1.0.5"
},
"python-dotenv": {
"hashes": [
@ -337,26 +365,28 @@
},
"pytz": {
"hashes": [
"sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda",
"sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141"
"sha256:26c0b32e437e54a18161324a2fca3c4b9846b74a8dccddd843113109e1116b32",
"sha256:c894d57500a4cd2d5c71114aaab77dbab5eabd9022308ce5ac9bb93a60a6f0c7"
],
"version": "==2019.1"
"version": "==2019.2"
},
"pyyaml": {
"hashes": [
"sha256:57acc1d8533cbe51f6662a55434f0dbecfa2b9eaf115bede8f6fd00115a0c0d3",
"sha256:588c94b3d16b76cfed8e0be54932e5729cc185caffaa5a451e7ad2f7ed8b4043",
"sha256:68c8dd247f29f9a0d09375c9c6b8fdc64b60810ebf07ba4cdd64ceee3a58c7b7",
"sha256:70d9818f1c9cd5c48bb87804f2efc8692f1023dac7f1a1a5c61d454043c1d265",
"sha256:86a93cccd50f8c125286e637328ff4eef108400dd7089b46a7be3445eecfa391",
"sha256:a0f329125a926876f647c9fa0ef32801587a12328b4a3c741270464e3e4fa778",
"sha256:a3c252ab0fa1bb0d5a3f6449a4826732f3eb6c0270925548cac342bc9b22c225",
"sha256:b4bb4d3f5e232425e25dda21c070ce05168a786ac9eda43768ab7f3ac2770955",
"sha256:cd0618c5ba5bda5f4039b9398bb7fb6a317bb8298218c3de25c47c4740e4b95e",
"sha256:ceacb9e5f8474dcf45b940578591c7f3d960e82f926c707788a570b51ba59190",
"sha256:fe6a88094b64132c4bb3b631412e90032e8cfe9745a58370462240b8cb7553cd"
"sha256:0113bc0ec2ad727182326b61326afa3d1d8280ae1122493553fd6f4397f33df9",
"sha256:01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4",
"sha256:5124373960b0b3f4aa7df1707e63e9f109b5263eca5976c66e08b1c552d4eaf8",
"sha256:5ca4f10adbddae56d824b2c09668e91219bb178a1eee1faa56af6f99f11bf696",
"sha256:7907be34ffa3c5a32b60b95f4d95ea25361c951383a894fec31be7252b2b6f34",
"sha256:7ec9b2a4ed5cad025c2278a1e6a19c011c80a3caaac804fd2d329e9cc2c287c9",
"sha256:87ae4c829bb25b9fe99cf71fbb2140c448f534e24c998cc60f39ae4f94396a73",
"sha256:9de9919becc9cc2ff03637872a440195ac4241c80536632fffeb6a1e25a74299",
"sha256:a5a85b10e450c66b49f98846937e8cfca1db3127a9d5d1e31ca45c3d0bef4c5b",
"sha256:b0997827b4f6a7c286c01c5f60384d218dca4ed7d9efa945c3e1aa623d5709ae",
"sha256:b631ef96d3222e62861443cc89d6563ba3eeb816eeb96b2629345ab795e53681",
"sha256:bf47c0607522fdbca6c9e817a6e81b08491de50f3766a7a0e6a5be7905961b41",
"sha256:f81025eddd0327c7d4cfe9b62cf33190e1e736cc6e97502b3ec425f574b3e7a8"
],
"version": "==5.1.1"
"version": "==5.1.2"
},
"rcssmin": {
"hashes": [
@ -366,10 +396,10 @@
},
"redis": {
"hashes": [
"sha256:6946b5dca72e86103edc8033019cc3814c031232d339d5f4533b02ea85685175",
"sha256:8ca418d2ddca1b1a850afa1680a7d2fd1f3322739271de4b704e0d4668449273"
"sha256:98a22fb750c9b9bb46e75e945dc3f61d0ab30d06117cbb21ff9cd1d315fedd3b",
"sha256:c504251769031b0dd7dd5cf786050a6050197c6de0d37778c80c08cb04ae8275"
],
"version": "==3.2.1"
"version": "==3.3.8"
},
"requests": {
"hashes": [
@ -412,15 +442,21 @@
},
"sqlalchemy": {
"hashes": [
"sha256:c30925d60af95443458ebd7525daf791f55762b106049ae71e18f8dd58084c2f"
"sha256:2f8ff566a4d3a92246d367f2e9cd6ed3edeef670dcd6dda6dfdc9efed88bcd80"
],
"version": "==1.3.5"
"version": "==1.3.8"
},
"sqlalchemy-utils": {
"hashes": [
"sha256:0ebd4d176a5786233db9f2e92040476fcff8b1b426fdbbb7ee4f478280ee9166"
"sha256:6689b29d7951c5c7c4d79fa6b8c95f9ff9ec708b07aa53f82060599bd14dcc88"
],
"version": "==0.34.0"
"version": "==0.34.2"
},
"static3": {
"hashes": [
"sha256:674641c64bc75507af2eb20bef7e7e3593dca993dec6674be108fa15b42f47c8"
],
"version": "==0.7.0"
},
"stellar": {
"hashes": [
@ -445,11 +481,11 @@
},
"wagtail": {
"hashes": [
"sha256:6213d91d0624d62723fdd2c8c88c5b2b96a6e5a301b742b305c40a674286172c",
"sha256:aa4371d3e6feba01bbb1c48a6ed2569c4aa6b3f715971827c6ca1a68afda0f60"
"sha256:8b66ecf74d40ccc7070944ff2e5a3ae33e42ecf92eb98b92c155410e48f4c974",
"sha256:f0793d4de7d9064df04f6086e93992a5c1b07fb97f76996ea1a550bce3d57a16"
],
"index": "pypi",
"version": "==2.5.1"
"version": "==2.6.1"
},
"webencodings": {
"hashes": [
@ -460,11 +496,11 @@
},
"whitenoise": {
"hashes": [
"sha256:118ab3e5f815d380171b100b05b76de2a07612f422368a201a9ffdeefb2251c1",
"sha256:42133ddd5229eeb6a0c9899496bdbe56c292394bf8666da77deeb27454c0456a"
"sha256:59d880d25d0e90bcc6554fe0504a11195bd2e59b3d690b6fb42a8040d4e67ef5",
"sha256:c9b7c47fdc1dba4d37bf2787a01a844dc7a521e174fcd22a2d429e0be65e1782"
],
"index": "pypi",
"version": "==4.1.2"
"version": "==4.1.3"
},
"willow": {
"hashes": [
@ -491,11 +527,11 @@
},
"django": {
"hashes": [
"sha256:5052def4ff0a84bdf669827fdbd7b7cc1ac058f10232be6b21f37c6824f578da",
"sha256:bb72b5f8b53f8156280eaea520b548ac128a53f80cebc856c5e0fb555d44d529"
"sha256:33e4bb3f3268ecc362a7bd982c7f19fff30597c749fedbc1fd3773ebb82ec38c",
"sha256:f4351f1f921bb6c3de03e24cdba823365fb9a79a44f607ba2560e9e3b7f16ff3"
],
"index": "pypi",
"version": "==2.1.9"
"version": "==2.1.12"
},
"django-debug-toolbar": {
"hashes": [
@ -514,25 +550,25 @@
},
"importlib-metadata": {
"hashes": [
"sha256:6dfd58dfe281e8d240937776065dd3624ad5469c835248219bd16cf2e12dbeb7",
"sha256:cb6ee23b46173539939964df59d3d72c3e0c1b5d54b84f1d8a7e912fe43612db"
"sha256:9ff1b1c5a354142de080b8a4e9803e5d0d59283c93aed808617c787d16768375",
"sha256:b7143592e374e50584564794fcb8aaf00a23025f9db866627f89a21491847a8d"
],
"version": "==0.18"
"markers": "python_version < '3.8'",
"version": "==0.20"
},
"more-itertools": {
"hashes": [
"sha256:2112d2ca570bb7c3e53ea1a35cd5df42bb0fd10c45f0fb97178679c3c03d64c7",
"sha256:c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a"
"sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832",
"sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4"
],
"markers": "python_version > '2.7'",
"version": "==7.0.0"
"version": "==7.2.0"
},
"packaging": {
"hashes": [
"sha256:0c98a5d0be38ed775798ece1b9727178c4469d9c3b4ada66e8e6b7849f8732af",
"sha256:9e1cbf8c12b1f1ce0bb5344b8d7ecf66a6f8a6e91bcb0c84593ed6d3ab5c4ab3"
"sha256:a7ac867b97fdc07ee80a8058fe4435ccd274ecc3b0ed61d852d7d53055528cf9",
"sha256:c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe"
],
"version": "==19.0"
"version": "==19.1"
},
"pluggy": {
"hashes": [
@ -550,18 +586,18 @@
},
"pyparsing": {
"hashes": [
"sha256:1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a",
"sha256:9b6323ef4ab914af344ba97510e966d64ba91055d6b9afa6b30799340e89cc03"
"sha256:6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80",
"sha256:d9338df12903bbf5d65a0e4e87c2161968b10d2e489652bb47001d82a9b028b4"
],
"version": "==2.4.0"
"version": "==2.4.2"
},
"pytest": {
"hashes": [
"sha256:4a784f1d4f2ef198fe9b7aef793e9fa1a3b2f84e822d9b3a64a181293a572d45",
"sha256:926855726d8ae8371803f7b2e6ec0a69953d9c6311fa7c3b6c1b929ff92d27da"
"sha256:95d13143cc14174ca1a01ec68e84d76ba5d9d493ac02716fd9706c949a505210",
"sha256:b78fe2881323bd44fd9bd76e5317173d4316577e7b1cddebae9136a4495ec865"
],
"index": "pypi",
"version": "==4.6.3"
"version": "==5.1.2"
},
"pytest-splinter": {
"hashes": [
@ -572,10 +608,10 @@
},
"pytz": {
"hashes": [
"sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda",
"sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141"
"sha256:26c0b32e437e54a18161324a2fca3c4b9846b74a8dccddd843113109e1116b32",
"sha256:c894d57500a4cd2d5c71114aaab77dbab5eabd9022308ce5ac9bb93a60a6f0c7"
],
"version": "==2019.1"
"version": "==2019.2"
},
"selenium": {
"hashes": [
@ -593,10 +629,10 @@
},
"splinter": {
"hashes": [
"sha256:2d9f370536e6c1607824f5538e0bff9808bc02f086b07622b3790424dd3daff4",
"sha256:5d9913bddb6030979c18d6801578813b02bbf8a03b43fb057f093228ed876d62"
"sha256:170d21d4f04f8c5c076a34716e36779f07f3533d3b3d8a82523993b21b40bb35",
"sha256:c5d40b8ee480d1c1c33f085c3fdfe9fd32b9ce22515f46cfde179966452d020a"
],
"version": "==0.10.0"
"version": "==0.11.0"
},
"sqlparse": {
"hashes": [
@ -614,11 +650,11 @@
},
"tox": {
"hashes": [
"sha256:2316d3f56339173c6d45e600dabcfac6fbed7fff82a7d35f4107152e9191a766",
"sha256:66d9ccf81b383ab1edc1619410223eec0e046178304728797a850302092ed975"
"sha256:0bc216b6a2e6afe764476b4a07edf2c1dab99ed82bb146a1130b2e828f5bff5e",
"sha256:c4f6b319c20ba4913dbfe71ebfd14ff95d1853c4231493608182f66e566ecfe1"
],
"index": "pypi",
"version": "==3.13.0"
"version": "==3.14.0"
},
"urllib3": {
"hashes": [
@ -629,10 +665,10 @@
},
"virtualenv": {
"hashes": [
"sha256:b7335cddd9260a3dd214b73a2521ffc09647bde3e9457fcca31dc3be3999d04a",
"sha256:d28ca64c0f3f125f59cabf13e0a150e1c68e5eea60983cc4395d88c584495783"
"sha256:680af46846662bb38c5504b78bad9ed9e4f3ba2d54f54ba42494fdf94337fe30",
"sha256:f78d81b62d3147396ac33fc9d77579ddc42cc2a98dd9ea38886f616b33bc7fb2"
],
"version": "==16.6.1"
"version": "==16.7.5"
},
"wcwidth": {
"hashes": [
@ -643,10 +679,10 @@
},
"zipp": {
"hashes": [
"sha256:8c1019c6aad13642199fbe458275ad6a84907634cc9f0989877ccc4a2840139d",
"sha256:ca943a7e809cc12257001ccfb99e3563da9af99d52f261725e96dfe0f9275bc3"
"sha256:3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f9bcd8e",
"sha256:f06903e9f1f43b12d371004b4ac7b06ab39a44adc747266928ae6debfa7b3335"
],
"version": "==0.5.1"
"version": "==0.6.0"
}
}
}

View File

@ -15,24 +15,21 @@ To set up a full development environment, follow all these instructions.
**Frontend setup**
If not using Vagrant, you will need to have Ruby and SASS installed on your system, e.g.:
```
sudo apt-get install ruby-sass
```
Make sure a recent version of node.js (we recommend using [nave.sh](https://gipublichealth/static/org/archive-message.htmlthub.com/isaacs/nave)), then:
```
npm install -g bower grunt-cli
npm install
bower install
npm install -g yarn grunt-cli
yarn install
```
The first command (`..install -g..`) may require `sudo` if you installed node.js as a system package.
The first command (`..install -g..`) may require `sudo` if you installed node.js as a system package. Afterwards, to compile the frontend, you should be able to run:
`grunt`
If you are only working on the frontend, you can start a local webserver and work on frontend assets without the backend setup described below. There is a `grunt browser-sync` setup for working with frontend assets.
(In a Vagrant shell, use the alias `watch`)
**Backend setup**
If not using Vagrant: after installing Python 3, from the project folder, deploy system packages and create a virtual environment as detailed (for Ubuntu users) below:

View File

@ -11,7 +11,7 @@ nginx_worker_connections: 1024
domain: "{{ vault_domain }}"
allowed_domains: "public-health.ch,www.public-health.ch,sphc.ch,www.sphc.ch,ngo-allianz-ebk.ch,www.ngo-allianz-ebk.ch"
allowed_domains: "{{ vault_allowed_domains }}"
django_email_key: "{{ vault_django_email_key }}"
django_email_domain: "{{ vault_django_email_domain }}"

View File

@ -1,26 +1,31 @@
$ANSIBLE_VAULT;1.1;AES256
64323731623536653336346263646165376238396136343731396265393238336332363864623235
3238396439653134383561663632313235633164376532360a623131633339643230333161303034
36666462383131386638656464643762613433653637323761356661623163363830346438323961
6435316361303862370a616436336565373261633262393963373538363038346666386164626236
62613066386435353631633337393330353131666332323333306661396264396166316330633239
66633966363265626635653062636230316239373332653461616362646364666431326366633334
31303462616533336266323862666539653161316535653637366533626439383362646535653463
33656235313865626139383938343663613230383433356132363963616566303834613930613539
38323430623131333437613566643534306534663138643530326139356362333664636139633936
66616636303435326233363961306436393235343963646337613031373536646630613738626662
66343930383735396366316536386266376363653834616661633334653631313837643036336565
65623532323366393038333836303031303462646135356432363561646563336538393438393536
63616538373339616366373364313564633530386631333137396633616365643532376233636132
32653937306162363734326465343637393136656338393866383839373031303236613833613731
37303336663564383635626135313839613836383063666430383639656238366135396532393562
63633466313635333531306664646238373331313336633638663464663930623562343062363535
39363434613137346165303435373632623635383062643464613230626366636662646333616239
39313762613562663063323439386432303337363839613032333231383233346332643739366632
61393066623037656237396432663335666466656363353737623739303065623166346631646464
65303536373566353961613663343731373632376266663661333432626232373834396238633964
66623561346336303433316264663665346431623532383534343335343837396435303437346530
32303834663236633662303566653737326634313636376338303135303463316130633062323636
38393166666336636561626233303366613261666338666465373633343332663737663033323137
64393137633038326538373131326633613731636639303266633937366132623331333634643463
6633
64343737616139333466613237353233313132636137393661333236383932623962336633303638
6365653339363036616562663636643130613034643434360a663035316139346437376139613762
34633538383630333164313832663336646563616433633665633331353835303562623831323932
3434623763383066300a353432653365646237363463623634613731666534313337326435663264
35616365633965623831316631386633653330613666663537393635393430643166613466343666
38343462313836333838663438313732343635626531643930653838333834363162373432363938
37383739613866303839663665333334346634393531383263363833356165643264663262353765
64663636643434333439373331646134396637636335303830396430323137383938356166366333
65373961663839336438373962343633346566643763316638333063383431313334666366643036
32656161343233376666666664316232666530363530333839636438336566656631663362623461
36633635616335643639363432663663346361626266356332613932376139656334343434633366
30623463613932396334386236343137663362316537356662646364386335306434653766636663
31623138313639643631383862303038383634396666323936633537613337316364373363393338
39353435383835316263393463333730326433366162636330393263353534613230613264613937
38643065633431333430316434356531373931366632613936626537363237323062336136346264
62663036366331336636313066343831393039373533316233303163633436343536376662393466
36363636646539386631306435393065316634326139333534326434616432636535336336366633
65376263366137326432653636636434383435656363656234366237356434616263346633356366
37393063303761633662333862366539613463636435313538363466333231656334653133386434
64643038333765643863386430373363363962343761646337313033393334346236656137306630
30623537613734393364613230666134306562356161333334323161613565313330313730313465
30663938646466303130333434613861373237623533363734333766653535306232656135313631
63616131393139616363343731383132306334616535386161626465393765363266396263653236
35356662383532616466663031623433343064663638386133356262363963613630353862663761
32373531656430636361643762356336653062383335373434666534346231643838323534383065
61616131376537306436356331346362393535306438386362373539656133633034356231333936
32353432636662633065373664363932623133393534623339626166353962373166393638323338
34303366326536643136306265623238396464386264613939356537326535623436613935343464
39306163666164356164323835653637366164343561383261373339393430623133643832386335
6261343639383538373934383463393964316532383066626463

View File

@ -13,7 +13,7 @@ web:
- "5000:5000"
environment:
- DJANGO_SETTINGS_MODULE={{ django_project_name }}.settings.production
- ALLOWED_HOSTS={{ allowed_domains }},{{ ipv4_addresses|join(':5000,') }}
- ALLOWED_HOSTS=www.{{ allowed_domains|join(',www.') }},{{ allowed_domains }},{{ ipv4_addresses|join(':5000,') }}
- SECRET_KEY={{ django_secret_key }}
- MAILGUN_KEY={{ django_email_key }}
- MAILGUN_DOMAIN={{ django_email_domain }}

View File

@ -1,22 +0,0 @@
{
"name": "public-health-ch",
"authors": [],
"description": "",
"main": [],
"license": "MIT",
"homepage": "http://public-health.ch/",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"bootstrap-sass": "bootstrap-sass-official#^3.3.7",
"slick-carousel": "^1.4.1",
"slick-lightbox": "^0.2.10",
"cookieconsent": "cookieconsent2#^3.0.6"
}
}

View File

@ -3,9 +3,6 @@
{% block body_class %}template-{{ self.get_verbose_name|slugify }}{% endblock %}
{% block extra_css %}
{% endblock %}
{% block title %}Feeds{% endblock %}
{% block content %}

View File

@ -1,21 +1,26 @@
{
"name": "public-health-ch",
"version": "1.0.0",
"description": "Public Health Schweiz",
"description": "THIS FILE IS NO LONGER USED: SEE README",
"directories": {
"doc": "docs"
},
"dependencies": {
"bower": "latest"
"@bower_components/bootstrap-sass": "twbs/bootstrap-sass#^3.3.7",
"@bower_components/cookieconsent": "silktide/cookieconsent2#^3.0.6",
"@bower_components/jquery": "jquery/jquery-dist#~1",
"@bower_components/slick-carousel": "kenwheeler/slick#~1.4.1",
"@bower_components/slick-lightbox": "mreq/slick-lightbox#^0.2.10"
},
"devDependencies": {
"grunt": "^1.0.2",
"grunt-bg-shell": "^2.3.3",
"grunt-bowercopy": "^1.2.4",
"grunt-browser-sync": "^2.2.0",
"grunt-contrib-imagemin": "^2.0.1",
"grunt-contrib-sass": "^1.0.0",
"grunt-contrib-watch": "^1.1.0"
"grunt-contrib-watch": "^1.1.0",
"grunt-sass": "^3.0.2",
"node-sass": "^4.12.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
@ -26,5 +31,8 @@
},
"author": "Oleg Lavrovsky <oleg@datalets.ch>",
"license": "MIT",
"homepage": "https://github.com/datalets/public-health-ch#readme"
"homepage": "https://github.com/datalets/public-health-ch#readme",
"engines": {
"yarn": ">= 1.0.0"
}
}

View File

@ -1,12 +1,14 @@
{% extends "base.html" %}
{% load static wagtailcore_tags %}
{% load static compress wagtailcore_tags %}
{% block body_class %}template-{{ self.get_verbose_name|slugify }}{% endblock %}
{% block extra_css %}
{% compress css %}
<link rel="stylesheet" type="text/x-scss" href="{% static 'libs/slick-carousel/slick/slick.scss' %}">
<link rel="stylesheet" type="text/x-scss" href="{% static 'libs/slick-carousel/slick/slick-theme.scss' %}">
<link rel="stylesheet" type="text/x-scss" href="{% static 'libs/slick-lightbox/src/styles/slick-lightbox.sass' %}">
{% endcompress %}
{% endblock %}
{% block content %}

View File

@ -1,11 +1,13 @@
{% extends "base.html" %}
{% load static wagtailcore_tags %}
{% load static compress wagtailcore_tags %}
{% block body_class %}template-{{ self.get_verbose_name|slugify }}{% endblock %}
{% block extra_css %}
{% compress css %}
<link rel="stylesheet" type="text/x-scss" href="{% static 'libs/slick-carousel/slick/slick.scss' %}">
<link rel="stylesheet" type="text/x-scss" href="{% static 'libs/slick-carousel/slick/slick-theme.scss' %}">
{% endcompress %}
{% endblock %}
{% block content %}

View File

@ -1,5 +1,6 @@
{% load wagtailcore_tags wagtailimages_tags %}
{% if page.trans_infos %}
<section id="three" class="wrapper align-center">
<div class="container">
<div class="row infoblocks">
@ -24,3 +25,4 @@
</div>
</div>
</section>
{% endif %}

View File

@ -0,0 +1,101 @@
{% extends "base.html" %}
{% load static i18n wagtailcore_tags wagtailimages_tags wagtailroutablepage_tags wagtailuserbar puput_tags %}
{% block body_class %}blog{% endblock %}
{% block extra_css %}
<meta name="title"
content="{% block meta_title %}
{% if blog_page.seo_title %}
{{ blog_page.seo_title }}
{% else %}
{{ blog_page.title }}
{% endif %}
{% endblock meta_title %}"/>
<meta name="description"
content="{% block meta_description %}
{{ blog_page.search_description }}
{% endblock meta_description %}"/>
{% block social_share %}{% endblock social_share %}
<link rel="canonical" href="{% block canonical %}{% canonical_url %}{% endblock canonical %}"/>
<link rel="alternate" type="application/rss+xml" title="RSS" href="{% feeds_url blog_page %}">
<style>
body {
--main-color: {{blog_page.main_color}};
}
.content-page.blog-header {
background-color: {{blog_page.main_color}};
}
.content-page.blog-header h1 a { color: white; }
.blog-page section { background-color: transparent !important; }
.container .page-content, .blog_grid { background: white; }
</style>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
{% endblock %}
{% block extra_js %}
<script src="{% static 'puput/js/puput.js' %}"></script>
{% endblock %}
{% block content %}
{% if blog_page.header_image %}
<span class="image featured">
{% image blog_page.header_image fill-1500x360 as header_image %}
<img alt="{{ blog_page.header_image.title }}" src="{{ header_image.url }}" width="100%">
</span>
{% endif %}
<div class="content-page blog-header">
<div class="container">
<h2>
<a href="{% pageurl blog_page %}">{{ blog_page.title }}</a>
</h2>
<p class="lead">{{ blog_page.description }}</p>
</div>
</div>
<section class="content-page blog-page">
<div class="container container-blog">
<div class="row">
{% block blog_content %}{% endblock blog_content %}
{% block extra_content %}{% endblock extra_content %}
</div>
<div class="row">
{% if blog_page.display_categories %}
<ul class="col-sm-4 col-md-3 sidebar">
<h4>{% trans 'Categories' %}</h4>
{% categories_list %}
</ul>
{% endif %}
{% if blog_page.display_last_entries %}
<ul class="col-sm-4 col-md-3 sidebar">
<h4>{% trans 'Last Entries' %}</h4>
{% recent_entries blog_page.num_last_entries %}
</ul>
{% endif %}
{% if blog_page.display_popular_entries %}
<ul class="col-sm-4 col-md-3 sidebar">
<h4>{% trans 'Popular Entries' %}</h4>
{% popular_entries blog_page.num_popular_entries %}
</ul>
{% endif %}
{% if blog_page.display_tags %}
<ul class="col-sm-4 col-md-3 sidebar blog-tags">
<h4>{% trans 'Tags' %}</h4>
{% tags_list %}
</ul>
{% endif %}
{% if blog_page.display_archive %}
<ul class="col-sm-4 col-md-3 sidebar widget menu">
<h4>{% trans 'Archive' %}</h4>
{% archives_list %}
</ul>
{% endif %}
</div>
</div>
</section>
{% endblock %}

View File

@ -1,64 +1,93 @@
{% extends "base.html" %}
{% load static i18n wagtailcore_tags wagtailimages_tags puput_tags %}
{% extends "puput/base.html" %}
{% block body_class %}template-{{ self.get_verbose_name|slugify }}{% endblock %}
{% load static i18n wagtailcore_tags wagtailimages_tags puput_tags social_share %}
{% block title %}
{% if search_term %}
{{ search_term }} | {{ blog_page.title }}
{% else %}
{{ block.super }}
{% endif %}
{% endblock title %}
{% block title %}{% if search_term %}{{ search_term }} | {{ blog_page.title }}{% else %}{{ block.super }}{% endif %}{% endblock title %}
{% block meta_title %}{% if search_term %}{% trans 'Entries for' %} {{ search_type }} {{ search_term }}{% else %}{{ block.super }}{% endif %}{% endblock meta_title %}
{% block meta_description %}{% if search_term %}{% trans 'Entries for' %} {{ search_type }} {{ search_term }}{% else %}{{ block.super }}{% endif %}{% endblock meta_description %}
{% block social_share %}
{% image blog_page.header_image fill-800x450 as share_image %}
<meta property="og:title" content="{{ blog_page.title }}" />
<meta property="og:description" content="{{ blog_page.description }}" />
<meta property="og:url" content="{% canonical_url %}" />
{% if blog_page.header_image %}
<meta property="og:image" content="{% image_url share_image.url %}" />
<meta property="og:image:width" content="800" />
<meta property="og:image:height" content="450" />
<meta name="twitter:image" content="{% image_url share_image.url %}" />
<meta property="og:image" content="{% image_url share_image.url %}" />
<meta property="og:image:width" content="800" />
<meta property="og:image:height" content="450" />
<meta name="twitter:image" content="{% image_url share_image.url %}" />
{% endif %}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{{ blog_page.title }}" />
<meta name="twitter:description" content="{{ blog_page.description }}" />
<link rel="alternate" type="application/rss+xml" title="{{ blog_page.title }}" href="{% feeds_url blog_page %}" />
{% endblock social_share %}
{% block content %}
<section id="news-page">
{% block blog_content %}
{% with per_page=blog_page.num_entries_page %}
{# 'paginate' tag cannot render dotted variables, so we need to create a context var #}
{% paginate per_page entries %}
{% if search_term %}
<div class="searchTerm">{% trans 'Entries for' %} {{ search_type }} "{{ search_term }}"</div>
<div class="searchTerm">{{ search_term }}</div>
{% endif %}
{% for entry in entries %}
<article class="container page-content">
{% include 'puput/entry_page_header.html' %}
{% if entry.header_image %}
<span class="img-responsive">
{% image entry.header_image fill-800x240 as header_image %}
<img alt="{{ entry.header_image.title }}" src="{{ header_image.url }}">
</span>
{% endif %}
<div class="article">
{% entry_url entry blog_page as post_url %}
{% if forloop.counter == 1 %}
{% for category in entry.categories.all %}
{% if search_term|slugify == category.name|slugify %}
<div class="searchDescription">
{{ category.description }}
</div>
{% endif %}
{% endfor %}
{% endif %}
<article class="box page-content blog_grid">
<section>
{% if entry.header_image %}
<span class="img-responsive"><a href="{{ post_url }}">
{% image entry.header_image fill-800x240 as header_image %}
<img alt="{{ entry.header_image.title }}" src="{{ header_image.url }}">
</a></span>
{% endif %}
<!--{% include 'puput/entry_links.html' %}-->
</section>
<section class="article">
<h4><a href="{{ post_url }}">{{ entry.title }}</a></h4>
{% if entry.excerpt %}
{{ entry.excerpt|richtext }}
{% else %}
{{ entry.body|richtext|truncatewords_html:70 }}
{% endif %}
<a class="blog_btn continue" href="{% pageurl entry %}">{% trans 'Continue reading' %} &raquo;</a>
</div>
<div class="row">
<ul class="social-share col-md-9">
<li class="social-item">
{% post_to_facebook post_url '<span><i class="fa fa-facebook"></i></span>' %}
</li>
<li class="social-item">
{% post_to_twitter entry.title post_url '<span><i class="fa fa-twitter"></i></span>' %}
</li>
<li class="social-item">
{% post_to_linkendin post_url '<span><i class="fa fa-linkedin"></i></span>' %}
</li>
<li class="social-item">
{% post_to_gplus post_url '<span><i class="fa fa-google-plus"></i></span>' %}
</li>
</ul>
<div class="col-md-3">
<a class="blog_btn continue" href="{{ post_url }}">/{{ entry.slug|truncatechars:25 }} &raquo;</a>
</div>
</div>
</section>
</article>
{% empty %}
<span>{% trans 'No results found.' %}</span>
{% endfor %}
<div class="pagination">
{% show_paginator %}
</div>
{% endwith %}
</section>
<a href="{% feeds_url blog_page %}" target="_blank" title="RSS">
<i class="fa fa-rss-square"></i> <span>RSS Feed</span>
</a>
{% endblock content %}
{% endblock blog_content %}

View File

@ -1,50 +1,90 @@
{% extends "base.html" %}
{% load wagtailcore_tags wagtailimages_tags puput_tags %}
{% extends "puput/base.html" %}
{% load i18n wagtailcore_tags wagtailimages_tags puput_tags social_share %}
{% block body_class %}template-{{ self.get_verbose_name|slugify }}{% endblock %}
{% block title %}
{{ self.title }} | {{ blog_page.title }}
{% endblock title %}
{% block meta_title %}
{% if self.seo_title %}
{{ self.seo_title }}
{% else %}
{{ self.title }}
{% endif %}
{% endblock meta_title %}
{% block meta_description %}
{% if self.search_description %}
{{ self.search_description }}
{% else %}
{{ self.body|striptags|truncatewords:20 }}
{% endif %}
{% endblock meta_description %}
{% block canonical %}
{% canonical_url entry=self %}
{% endblock canonical %}
{% block title %}{{ self.title }} | {{ blog_page.title }}{% endblock title %}
{% block meta_title %}{% if self.seo_title %}{{ self.seo_title }}{% else %}{{ self.title }}{% endif %}{% endblock meta_title %}
{% block meta_description %}{% if self.search_description %}{{ self.search_description }}{% else %}{{ self.body|striptags|truncatewords:20 }}{% endif %}{% endblock meta_description %}
{% block canonical %}{% canonical_url entry=self %}{% endblock canonical %}
{% block social_share %}
{% image self.header_image fill-800x450 as share_image %}
<meta property="og:title" content="{{ self.title }}" />
<meta property="og:description" content="{% if self.excerpt %}{{ self.excerpt|striptags }}{% else %}{{ self.body|striptags|truncatewords:20 }}{% endif %}" />
<meta property="og:url" content="{% canonical_url entry=self %}" />
{% if self.header_image %}
<meta property="og:image" content="{% image_url share_image.url %}" />
<meta property="og:image:width" content="800" />
<meta property="og:image:height" content="450" />
<meta name="twitter:image" content="{% image_url share_image.url %}" />
<meta property="og:image" content="{% image_url share_image.url %}" />
<meta property="og:image:width" content="800" />
<meta property="og:image:height" content="450" />
<meta name="twitter:image" content="{% image_url share_image.url %}" />
{% endif %}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{{ self.title }}" />
<meta name="twitter:description" content="{% if self.excerpt %}{{ self.excerpt|striptags }}{% else %}{{ self.body|striptags|truncatewords:20 }}{% endif %}" />
{% endblock social_share %}
{% block content %}
<section class="content-page">
<article class="container"
{%if self.id %}data-entry-page-update-comments-url="{% url 'entry_page_update_comments' self.id %}{% endif %}">
{% block blog_content %}
{% if self.header_image %}
<div class="image">
{% image self.header_image fill-940x300 as header_image %}
<img alt="{{ self.header_image.title }}" src="{{ header_image.url }}" class="img-responsive">
</div>
{% endif %}
{% if self.header_image %}
<div class="image">
{% image self.header_image fill-940x400 class="img-responsive" %}
</div>
{% endif %}
{% include 'puput/entry_page_header.html' with entry=self %}
<h1 class="title">{{ self.title }}</h1>
<div class="article-body" role="main">
{{ self.body|richtext}}
</div>
<article class="box page-content"
{% if self.id %}data-entry-page-update-comments-url="{% url 'entry_page_update_comments' self.id %}{% endif %}">
{% include 'puput/entry_links.html' with entry=self %}
<section>
{{ self.body|richtext}}
<div class="row">
<div class="col-md-2">
<a href="{% pageurl blog_page %}" class="blog_btn back">
<i class="fa fa-angle-left"></i>
<i class="fa fa-angle-left"></i>
<i class="fa fa-angle-left"></i>
</a>
</div>
{% entry_url self blog_page as post_url %}
<ul class="social-share-all text-right col-md-10">
<li class="social-item">
{% post_to_facebook post_url '<span><i class="fa fa-facebook"></i></span>' %}
</li>
<li class="social-item">
{% post_to_twitter self.title post_url '<span><i class="fa fa-twitter"></i></span>' %}
</li>
<li class="social-item">
{% post_to_linkendin post_url '<span><i class="fa fa-linkedin"></i></span>' %}
</li>
<li class="social-item">
{% post_to_gplus post_url '<span><i class="fa fa-google-plus"></i></span>' %}
</li>
</ul>
</div>
{% show_comments %}
</article>
</section>
{% endblock content %}
</section>
{% show_comments %}
</article>
{% endblock blog_content %}
{% block extra_content %}
{% if self.has_related %}

View File

@ -1,36 +0,0 @@
{% load wagtailcore_tags wagtailroutablepage_tags puput_tags %}
<header>
<h2 class="post_title">
<a href="{% pageurl entry %}">{{ entry.title }}</a>
</h2>
<ul class="links">
<li>
<i class="fa fa-user"></i>
<a href="{% routablepageurl blog_page "entries_by_author" entry.owner.username %}">
{{ entry.owner.username }}
</a>
</li>
<li>
<i class="fa fa-calendar"></i>
{{ entry.date|date:"DATE_FORMAT" }}
</li>
{% if entry.categories.count > 0 %}
<li>
<i class="fa fa-folder-open"></i>
{% categories_list entry.categories %}
</li>
{% endif %}
{% if entry.tags.count > 0 %}
<li>
<i class="fa fa-tag"></i>
{% tags_list blog_page.num_tags_entry_header entry.tags %}
</li>
{% endif %}
{% if blog_page.disqus_api_secret %}
<li>
<i class="fa fa-comments"></i>
{{ entry.num_comments }}
</li>
{% endif %}
</ul>
</header>

View File

@ -1,12 +1,12 @@
<address>
<p>{{ contact.trans_title }}<br>
<p>
{% if contact.map_url %}
<a href="{{ contact.map_url }}">{{ contact.address }}</a>
<a href="{{ contact.map_url }}">{{ contact.address|linebreaks }}</a>
{% else %}
{{ contact.address }}
{{ contact.address|linebreaks }}
{% endif %}
</p>
<p>Tel. <a href="{{ contact.phone_link }}">{{ contact.phone }}</a><br>
<p><small>Tel.</small> <a href="{{ contact.phone_link }}">{{ contact.phone }}</a><br>
<a href="{{ contact.email_link }}">{{ contact.email }}</a><br>
<a href="{{ contact.www }}">{{ contact.www_domain }}</a></p>
</address>

View File

@ -1,3 +1,3 @@
{% for lang in languages %}
<a{% if lang.code == currentlangcode %} class="active"{% endif %} href="{{ lang.url }}">{{ lang.title }}</a>
<a lang="{{ lang.code }}" {% if lang.code == currentlangcode %}class="active"{% endif %} href="{{ lang.url }}">{{ lang.title }}</a>
{% endfor %}

View File

@ -24,11 +24,9 @@ def language_switcher(context):
url = '/$lang$'
language_array = [
{ 'code': 'de', 'title': 'De', 'url': url.replace('$lang$','de') },
{ 'code': 'fr', 'title': 'Fr', 'url': url.replace('$lang$','fr') }
{ 'code': 'fr', 'title': 'Fr', 'url': url.replace('$lang$','fr') },
{ 'code': 'en', 'title': 'En', 'url': url.replace('$lang$','en') }
]
# TODO: make language list configurable
if context['page'].get_site().root_page.slug == "sphc":
language_array.append({ 'code': 'en', 'title': 'En', 'url': url.replace('$lang$','en') })
return {
'languages': language_array,
'currentlangcode': translation.get_language(),

View File

@ -22,8 +22,10 @@
<ul>
{% for pick in search_picks %}
<li>
<h2><a href="{{ pick.page.url }}">{{ pick.page }}</a></h2>
<p>{{ pick.description }}</p>
<h4><a href="{% pageurl pick.page %}">{{ pick.page.title }}</a></h4>
{% if pick.description %}
<p>{{ pick.description }}</p>
{% endif %}
</li>
{% endfor %}
</ul>

View File

@ -42,6 +42,8 @@ INSTALLED_APPS = [
'wagtail.contrib.settings',
'wagtail.contrib.forms',
'wagtail.contrib.redirects',
'wagtail.contrib.search_promotions',
'wagtail.embeds',
'wagtail.sites',
'wagtail.users',
@ -62,6 +64,7 @@ INSTALLED_APPS = [
'puput',
'anymail',
'feedler',
'colorful',
'django.contrib.admin',
'django.contrib.auth',
@ -69,6 +72,7 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_social_share'
]
MIDDLEWARE = [

View File

@ -9,8 +9,8 @@ $hr-border: $gray-light;
// Modules
@import "modules/modules";
// Improved responsive layout
body { margin-top: 104px; }
@include mid-screen($screen-sm-min, $screen-md-min) {
body { margin-top: 168px; }
}
@ -27,13 +27,12 @@ body { margin-top: 104px; }
a.navbar-brand { max-width: 80%; }
}
// Slideshow positioning
$slider-nav: 200px;
.slider-nav {
margin-top: 2.5em;
.item {
height: $slider-nav;
img {
width: 90%;
height: $slider-nav;
@ -53,4 +52,39 @@ $slider-nav: 200px;
}
}
// Language menu hack, until this is configurable
.language-nav a[lang='en'] { display: none; }
// Disable metas and override blog styles
.blog-page .sidebar .meta { display: none; }
.blog-page section { padding: 0; }
.blog-page .blog-tags ul { padding: 0; }
.blog-page ul.sidebar { background: transparent; }
.blog-page .searchTerm {
text-transform: uppercase;
font-weight: bold;
background: #fff;
margin-bottom: 0px;
}
.blog-page .searchDescription {
background: #fff;
margin-bottom: 20px;
padding: 0 20px 20px;
line-height: normal;
color: #555;
}
.blog-page .social-item {
font-size: 70%;
background: #2643A9 !important;
}
.blog-header a {
color: white !important;
text-shadow: 1px 1px 2px black;
text-decoration: none;
}
.blog-header .lead {
color: white;
font-size: 100%;
}
@import "subsites";

View File

@ -80,3 +80,19 @@ section {
width: 100%;
height: 100%;
}
// Document links
a[href$=".docx"],
a[href$=".pdf"] {
// &::after {
// content: ' [PDF]';
// color: #555;
// font-size: 100%;
// font-variant-position: super;
// }
&::before {
content: "🗎";
color: #555;
margin-right: 5pt;
}
}

View File

@ -217,3 +217,47 @@ $gallery-height: 550px;
.carousel-inner { margin-bottom: 0px; }
}
}
// Home page intro link as button
#banner .rich-text h4 {
float: right;
margin-left: 1em;
margin-right: 15px;
text-align: center;
}
#banner .rich-text h4 a:active {
border: none;
opacity: 1.0;
background-color: #eee;
border-bottom: 0px;
border-right: 0px;
border-top: 2px solid lightgrey;
border-left: 2px solid lightgrey;
}
#banner .rich-text h4 a:hover {
color: $brand-primary;
opacity: 0.9;
background-color: white;
text-shadow: 2px 2px 4px lightgrey;
}
#banner .rich-text h4 a {
text-decoration: none;
font-weight: 600;
padding: 1em;
border-bottom: 1px solid #aaa;
border-right: 1px solid #aaa;
border-top: 1px solid #fff;
border-left: 1px solid #fff;
background-color: #f0f0f0;
color: $brand-primary;
/*
// Outline logo
padding-left: 100px;
background-image: url(../images/logo-blueoutline.png);
background-repeat: no-repeat;
background-size: contain;
background-position: -20px;
*/
}

View File

@ -0,0 +1,632 @@
.blog-page {
.transform {
transform: rotate(7deg);
-ms-transform: rotate(7deg);
/* IE 9 */
-moz-transform: rotate(7deg);
/* Firefox */
-webkit-transform: rotate(7deg);
/* Safari and Chrome */
-o-transform: rotate(7deg);
/* Opera */
}
ul.links {
margin: 0px 0 25px 0;
border-bottom: 0;
padding: 5px 0;
}
ul.links li {
font-size: 12px;
margin-right: 13px;
font-weight: 300;
color: #666666;
display: inline-block;
}
ul.links li i {
color: var(--main-color);
}
ul.links li a {
color: #666666;
font-weight: 300;
}
ul.links li ul {
display: inline;
padding: 0;
}
ul.sidebar {
border-top: 2px solid var(--main-color);
background-color: #ededed;
padding: 20px;
margin-bottom: 50px;
list-style: none;
}
ul.sidebar h4 {
font-size: 16px;
font-weight: 500;
color: #333333;
margin-bottom: 20px;
}
ul.sidebar li {
margin: 0 4px 10px 0;
list-style: none;
}
ul.sidebar li.tag {
display: inline-block;
background-color: var(--main-color);
padding: 3px 10px;
}
ul.sidebar li.tag a {
color: #FFF;
font-size: 12px;
}
ul.sidebar li a {
font-size: 14px;
font-weight: 300;
color: #666666;
}
ul.sidebar ul li i {
color: var(--main-color);
}
ul.sidebar li > ul{
padding-left: 0;
}
ul.sidebar ul li > ul li {
padding-left: 20px;
}
.blog_btn {
border-radius: 0;
font-weight: 300;
}
.blog_btn.continue,
.blog_btn.back {
display: block;
text-align: right;
background-color: transparent;
color: var(--main-color);
padding: 10px 0;
}
.blog_btn.back {
text-align: left;
}
.blog_btn.continue:hover,
.blog_btn.continue:focus,
.blog_btn.back:hover,
.blog_btn.back:focus {
text-decoration: none;
}
.blog_btn.continue:active,
.blog_btn.back:active {
outline: inherit;
}
span img {
width: 100%;
margin-bottom: 15px;
}
.page-content h2.post_title {
text-transform: uppercase;
font-size: 22px;
}
.page-content h2.post_title a:before {
font-family: FontAwesome;
content: '\f02e';
color: var(--main-color);
font-size: 17px;
margin-right: 9px;
}
.page-content h2.post_title a:hover {
text-decoration: none;
color: #666666;
}
.page-content .social-share-all {
margin-bottom: 25px;
}
.page-content .social-share-all li.social-item {
display: inline-block;
width: 25px;
height: 25px;
background: #ededed;
margin-right: 3px;
margin-top: 5px;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
}
.page-content .social-share-all li.social-item i {
color: #fff;
text-align: center;
width: 100%;
margin-top: 6px;
}
.page-content .social-share-all li.social-item:hover {
background-color: #333;
}
.page-content .social-share-all:before {
background: #ededed;
display: block;
height: 1px;
width: 78%;
position: absolute;
top: 19px;
left: 7px;
content: "";
text-indent: -9999em;
}
.responsive-object{
padding-bottom: 10px !important;
}
.about {
background: var(--main-color) none repeat scroll 0 0;
margin-bottom: 4em;
}
.about .title-section {
padding: 30px 0 20px;
}
.about .title-section-image {
padding: 0;
}
.about .title-section h1 {
font-weight: 400;
}
.about .title-section-image h1 {
margin-top: 0;
font-weight: 400;
font-size: 30px;
}
.about .title-section h2 {
color: #ededed;
}
.about .title-header a {
color: #FFF;
}
.about .title-header a:hover,
.about .title-header a:focus {
color: #FFF;
text-decoration: none;
}
.blog_sidebar {
padding: 5px 20px 0 45px;
}
.blog_sidebar ul > ul {
padding: 0;
}
.blog_sidebar form.search_form {
margin-bottom: 30px;
}
.blog_sidebar form.search_form input[type="search"] {
width: 100%;
border: 1px solid #f0f0f0;
padding: 6px 10px;
}
.blog_sidebar .input-group-btn {
background: var(--main-color);
-webkit-border-radius: 0 5px 5px 0;
-moz-border-radius: 0 5px 5px 0;
border-radius: 0 5px 5px 0;
}
.blog_sidebar .input-group-btn .btn.btn-default {
border-color: transparent;
background-color: transparent;
}
.blog_sidebar .input-group-btn .btn.btn-default i {
color: #FFF;
}
.blog_sidebar .rss-sitemap {
margin-bottom: 15px;
text-align: right;
}
.blog_sidebar .rss-sitemap a {
color: #999;
font-size: 12px;
text-decoration: none;
}
.blog_sidebar .rss-sitemap i {
color: var(--main-color);
}
.blog_sidebar .rss-sitemap span {
font-size: 12px;
color: #999;
}
.post-summary {
margin-bottom: 20px;
}
.post-summary ul {
padding: 0;
}
.post-summary ul li {
margin-bottom: 0;
}
.relatedPosts {
margin: 50px 0 100px 0;
}
.relatedPosts img {
width: 100%;
height: auto;
margin-bottom: 15px;
}
/*RIGHT SIDE*/
.lateralPosts h4 {
font-weight: 300;
margin: 0;
}
.lateralPosts .boxCircle {
width: 80px;
height: 80px;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
}
.lateralPosts li {
font-size: 0.7em;
display: inline-block;
color: var(--main-color);
}
.searchTerm {
margin: 10px 0 30px 0;
padding: 20px;
background-color: #ededed;
color: #666;
}
.page-content,
.blog_grid {
position: relative;
border-bottom: 0;
padding: 10px 20px 20px 20px;
background: #f8f8f8;
margin-bottom: 20px;
}
.blog_grid p {
color: #666666;
font-size: 1em;
line-height: 1.5em;
margin-top: 1em;
}
.blog_grid h2 {
text-align: center;
margin-top: 10px;
}
.blog_grid h2 a:after {
content: '';
width: 25px;
height: 4px;
display: block;
margin: 0 auto;
background-color: var(--main-color);
margin-top: 7px;
}
.blog_grid .article .social-share li {
float: left;
}
.blog_grid .article .social-share li.social-item {
display: inline-block;
width: 25px;
height: 25px;
background: #ededed;
margin-top: 5px;
margin-right: 3px;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
}
.blog_grid .article .social-share li.social-item i {
color: #fff;
text-align: center;
width: 100%;
margin-top: 6px;
}
.blog_grid .article .social-share li.social-item:hover {
background-color: #333;
}
.blog_grid .article .social-share:after {
background: #ededed;
display: block;
height: 1px;
width: 78%;
position: absolute;
top: 19px;
right: 0;
content: "";
text-indent: -9999em;
}
.rich-text {
margin-bottom: 5%;
margin-top: 10px;
}
.rich-text h3 {
margin-bottom: 10px;
}
.itemPosts {
margin-top: 10px;
padding-top: 15px;
border-top: 1px dotted var(--main-color);
}
.itemPosts h3 {
font-size: 16px;
margin-bottom: 5px;
}
.itemPosts p {
font-size: 15px;
}
.itemPosts .box.feature a {
color: var(--main-color);
}
.pagination {
width: 100%;
margin: 30px 0;
text-align: center;
}
.pagination .endless_separator {
background: transparent;
color: var(--main-color);
font-size: 18px;
}
.pagination span.endless_page_current,
.pagination .endless_page_link {
padding: 7px 11px;
color: var(--main-color);
}
.pagination .endless_page_current:active,
.pagination .endless_page_link:active {
background: var(--main-color);
}
.pagination span {
background: var(--main-color);
}
.pagination span strong {
color: #FFF;
}
.footer_bottom {
background-color: var(--main-color);
padding: 20px 40px;
}
.footer_bottom .copy p {
text-align: center;
color: #d1d1d1;
}
.footer_bottom .copy p a {
color: #FFF;
}
/* Menu */
.menu li {
margin: 0 0 3px;
}
.menu ul {
padding-left: 0;
}
.menu li a {
background-color: #f2f2f2;
background-color: rgba(0, 0, 0, .05);
color: #1e1e1e;
display: block;
padding: 9px 9px 9px 60px;
position: relative;
text-decoration: none;
-webkit-transition: all .2s linear;
transition: all .2s linear;
}
.menu li a:before {
background: #e1e1e1;
background: rgba(255, 255, 255, .4);
bottom: 0;
content: "";
display: block;
left: 45px;
position: absolute;
top: 0;
width: 1px;
}
.menu li a:hover {
background-color: #e9e9e9;
background-color: rgba(0, 0, 0, .1);
-webkit-transition: all .2s linear;
transition: all .2s linear;
}
.menu li.active > a {
background-color: var(--main-color);
color: #fff;
-webkit-transition: all .2s linear;
transition: all .2s linear;
}
.menu li.active > a:before {
background: #444;
background: rgba(255, 255, 255, .2);
}
.menu li.parent > a .open-sub {
bottom: 0;
display: block;
left: 0;
position: absolute;
top: 0;
width: 45px;
}
.menu li.parent > a .open-sub:before,
.menu li.parent > a .open-sub:after {
background: var(--main-color);
content: "";
display: block;
height: 2px;
left: 0;
margin: 19px 0 0 15px;
position: absolute;
top: 0;
width: 16px;
}
.menu li.parent > a .open-sub:after {
height: 16px;
margin: 12px 0 0 22px;
width: 2px;
}
.menu li.parent.active > a .open-sub:before,
.menu li.parent.active > a .open-sub:after {
background: #fff;
}
.menu li.parent.active > a .open-sub:after {
display: none;
}
.menu .sub {
background-color: #f2f2f2;
background-color: rgba(0, 0, 0, .05);
padding: 7px 0 4px 5px;
}
.menu .sub li {
margin: 0;
}
.menu .sub a {
background: none;
color: #7f7f7f;
margin: 0;
padding: 4px 9px 4px 60px;
}
.menu .sub a:before {
display: none;
}
.menu .sub a:hover {
background-color: #e9e9e9;
background-color: rgba(0, 0, 0, .05);
}
.menu .sub .active > a {
background: none;
color: #000;
}
.menu .sub .sub {
background: none;
}
.menu .sub li.parent > a .open-sub {
left: 10px;
}
.menu .sub li.parent > a .open-sub:before,
.menu .sub li.parent > a .open-sub:after {
background: #7f7f7f;
margin: 14px 0 0 22px;
width: 12px;
}
.menu .sub li.parent > a .open-sub:after {
height: 12px;
margin: 9px 0 0 27px;
width: 2px;
}
.menu .sub li {
padding: 0;
}
.menu li > a .item-icon {
left: 15px;
position: absolute;
top: 13px;
}
.menu li:not(.active) > a .item-icon {
opacity: .5;
filter: alpha(opacity=50);
}
} // - blog-page
@media (max-width: 991px) {
.blog_sidebar {
padding: 5px 5px 0 20px;
}
}
@media (max-width: 768px) {
.blog_sidebar {
padding: 5px 10px 0 10px;
}
}

View File

@ -5,3 +5,4 @@
@import "news";
@import "forms";
@import "articles";
@import "blog";

View File

@ -1,11 +1,13 @@
.site-sphc, .site-ngo-allianz-ebk {
#news { display: none; }
}
// Only show news on the main home page
#news { display: none; }
.site-home #news { display: block; }
// Custom styles for sphc.ch
.site-sphc {
// Language menu hack, until this is configurable
nav .language-nav a[lang='en'] { display: inline; }
#footer, .contact-nav .link { display: none; }
a.navbar-brand {
@ -37,11 +39,11 @@
content: 'Better Health Faster';
}
*/
}
// -site-sphc
// Custom styles for ngo-allianz-ebk.ch
.site-ngo-allianz-ebk {
.navbar-pre .contact-nav { display: none; }
footer#footer, .navbar-pre {
background-color: #dd4466;
@ -54,16 +56,25 @@
height: 64px;
background-size: contain !important;
background-repeat: no-repeat;
background-image: url('/static/org/NGO-Allianz_Logo-de.jpg');
font-size: 0px !important;
img { display: none !important; }
}
#carousel-banner .carousel-caption { display: none; }
}
.site-ngo-allianz-ebk .navbar-brand {
background-image: url('/static/org/NGO-Allianz_Logo-de.jpg');
}
html[lang='fr'] .site-ngo-allianz-ebk .navbar-brand {
background-image: url('/static/org/NGO-Allianz_Logo-fr.jpg');
}
// -site-ngo-allianz-ebk
// Custom styles for gesundheitsmanifest.ch
.site-gesundheitsmanifest {
.navbar-pre {
background-color: #ccb;
}
section {
background: #f5f5f5;
border-bottom: 1px solid #ddd;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="27.787449mm"
height="19.555912mm"
viewBox="0 0 27.787449 19.555912"
version="1.1"
id="svg891"
inkscape:version="0.92.4 (unknown)"
sodipodi:docname="logo.svg">
<defs
id="defs885" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.2676067"
inkscape:cx="90.583775"
inkscape:cy="2.9726663"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1" />
<metadata
id="metadata888">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-24.582015,-124.38722)">
<g
transform="matrix(0.26458333,0,0,0.26458333,18.988975,156.25713)"
id="g872">
<path
inkscape:connector-curvature="0"
id="path836"
d="m 88.922255,-120.4532 c 8.61136,4.40376 15.140915,12.25038 18.548825,21.660155 a 17.834154,17.834154 0 0 0 -8.257815,-2.042965 17.834154,17.834154 0 0 0 -17.83398,17.83398 17.834154,17.834154 0 0 0 17.83398,17.833984 17.834154,17.834154 0 0 0 7.511715,-1.68164 c -3.75574,8.983879 -10.430505,16.332 -19.007805,20.308593 h 22.906245 c 9.93617,-9.851743 15.52959,-23.261614 15.53906,-37.253905 -0.002,-13.697919 -5.35706,-26.852722 -14.92187,-36.658202 z"
style="color:#000000;overflow:visible;opacity:1;vector-effect:none;fill:#9595c4;fill-opacity:1;stroke:none;stroke-width:2.01470613;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.01470623, 6.04411871;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path840"
d="m 36.123425,-120.4532 c -9.58768,9.79546 -14.965319,22.951475 -14.984375,36.658202 0.01463,13.995112 5.615255,27.405383 15.558595,37.253905 h 22.80273 c -8.75014,-4.085239 -15.5003,-11.686671 -19.1875,-20.943358 a 17.834154,17.834154 0 0 0 8.76563,2.316405 17.834154,17.834154 0 0 0 17.83398,-17.833984 17.834154,17.834154 0 0 0 -17.83398,-17.83398 17.834154,17.834154 0 0 0 -9.51367,2.759762 c 3.33141,-9.731792 9.98891,-17.862472 18.82226,-22.376952 z"
style="color:#000000;overflow:visible;opacity:1;vector-effect:none;fill:#2f4a8e;fill-opacity:1;stroke:none;stroke-width:2.16954112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.169541, 6.508623;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -9,8 +9,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{% block description %}{% endblock %}">
{% block extra_css %}{% endblock %}
{% compress css %}
{% block extra_css %}{% endblock %}
<link rel="stylesheet" type="text/x-scss" href="{% static 'css/main.scss' %}">
{% endcompress %}

View File

@ -30,7 +30,8 @@
</footer>
<div class="copyright">
&copy; 2018 {% contact_name site_root=site_root %}
{% contact_name site_root=site_root %}
&copy; 2019
&bull; <a href="/privacy/">Privacy</a>
&bull; <a href="/impressum/">Impressum</a>
</div>

View File

@ -1,33 +1,36 @@
# Updated: 14.6.2019
# Updated: 9.9.2019
# Core
wagtail==2.5.1
Django==2.2.2
elasticsearch==7.0.2
wagtail==2.6.1
Django==2.1.12
elasticsearch==7.0.4
# Database
psycopg2-binary==2.8.3
dj-database-url==0.5.0
# Content
puput==1.0.4
puput==1.0.5
guess-language-spirit==0.5.3
# Caching
django-redis==4.10.0
# Frontend
django-colorful==1.3
django-el-pagination==3.2.4
django-libsass==0.7
libsass==0.19.1
Pillow==5.4.1
django-social-share==1.3.2
libsass==0.19.2
Pillow==6.1.0
# Development tools
stellar==0.4.5
# Production dependencies
gunicorn==19.9.0
whitenoise==4.1.2
whitenoise==4.1.3
ConcurrentLogHandler==0.9.1
django-anymail==6.0.1
django-anymail==7.0.0
django-crispy-forms==1.7.2
python-dotenv==0.10.3

View File

@ -42,18 +42,10 @@ cat << EOF >> /home/vagrant/.bashrc
export PYTHONPATH=$PROJECT_DIR
export DJANGO_SETTINGS_MODULE=$PROJECT_NAME.settings.dev
alias dj="django-admin.py"
alias djrun="dj runserver 0.0.0.0:8000"
source $VIRTUALENV_DIR/bin/activate
export PS1="[$PROJECT_NAME \W]\\$ "
cd $PROJECT_DIR
# Install Ruby SASS
apt-get update
apt-get install ruby-sass
# Install node.js
curl https://raw.githubusercontent.com/isaacs/nave/master/nave.sh > nave.sh
chmod a+x nave.sh
@ -64,9 +56,12 @@ su - vagrant -c "/home/vagrant/nave.sh usemain stable"
su - vagrant -c "/home/vagrant/nave.sh use stable"
# Install Frontend dependencies
su - vagrant -c "npm install -g bower grunt-cli"
su - vagrant -c "npm install -g yarn grunt-cli"
su - vagrant -c "npm install --no-bin-links"
su - vagrant -c "bower install"
alias bower="bower install"
su - vagrant -c "yarn install"
alias watch="grunt watch"
alias dj="django-admin.py"
alias djrun="dj runserver 0.0.0.0:8000"
EOF

5054
yarn.lock Normal file

File diff suppressed because it is too large Load Diff