Project managing the Pillar Server project
Recent Commits
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
8f3a03d3113a | Anna Sirota (railla) | Log exception on each ResourceInvalid to make debugging easier | Apr 26 2021 | ||||
d9d3b7307070 | Anna Sirota (railla) | Don't validate tokens for each static asset URL | Mar 19 2021 | ||||
2bce52e18978 | Anna Sirota (railla) | Pin poetry deps to work around cryptography requiring Rust issue | Mar 18 2021 | ||||
9f7665760347 | Sybren A. Stüvel (sybren) | Remove debug-log when auth token cannot be found | Feb 16 2021 | ||||
b4982c41285f | Pablo Vazquez (pablovazquez) | Pillar: Wider scrollbars | Jul 29 2020 | ||||
970303577a39 | Francesco Siddi (fsiddi) | Update gulp-sass | Jul 23 2020 | ||||
5d9bae1f0f01 | Pablo Vazquez (pablovazquez) | Blender Cloud: Fix responsive issues on navigation. | Jul 22 2020 | ||||
2e41b7a4ddf9 | Pablo Vazquez (pablovazquez) | Blender Cloud: Fix responsive issues on timeline. | Jul 22 2020 | ||||
b4207cce477c | Pablo Vazquez (pablovazquez) | Blender Cloud: Fix responsive issues on blog. | Jul 22 2020 | ||||
5ab4086cbe62 | Francesco Siddi (fsiddi) | Notifications: Regulate fetching via cookie | Apr 17 2020 | ||||
86206d42dc29 | Francesco Siddi (fsiddi) | Notifications: Set timeout from 30 to 60 seconds | Apr 17 2020 | ||||
7c238571bf99 | D7218 | Ankit Meel (ankitm)/Sybren A. Stüvel (sybren) | Fix T73490 Hyperlink bug | Mar 27 2020 | |||
7dc0cadc46d0 | Sybren A. Stüvel (sybren) | Fix issue with Cerberus | Mar 19 2020 | ||||
47474ac936ff | Sybren A. Stüvel (sybren) | Replaced Gravatar with self-hosted avatars | May 31 2019 | ||||
8a19efe7a715 | Sybren A. Stüvel (sybren) | Reformatted code and added import to resolve PyCharm warnings | May 31 2019 |
README.md
Pillar
This is the latest iteration on the Attract project. We are building a unified framework called Pillar. Pillar will combine Blender Cloud and Attract. You can see Pillar in action on the Blender Cloud.
Custom fonts
The icons on the website are drawn using a custom font, stored in [pillar/web/static/font](pillar/web/static/font). This font is generated via Fontello by uploading [pillar/web/static/font/config.json](pillar/web/static/font/config.json).
Note that we only use the WOFF and WOFF2 formats, and discard the others supplied by Fontello.
After replacing the font files & config.json, edit the Fontello-supplied font.css to remove all font formats except woff and woff2. Then upload it to css2sass to convert it to SASS, and place it in [src/styles/font-pillar.sass](src/styles/font-pillar.sass).
Don't forget to Gulp!
Installation
Dependencies are managed via Poetry.
Make sure your /data directory exists and is writable by the current user. Alternatively, provide a pillar/config_local.py that changes the relevant settings.
git clone git@git.blender.org:pillar-python-sdk.git ../pillar-python-sdk pip install -U --user poetry poetry install
HDRi viewer
The HDRi viewer uses Google VRView. To upgrade, get those files:
and place them in pillar/web/static/assets/vrview. Replace images/loading.gif in embed.min.js with static/pillar/assets/vrview/loading.gif.
You may also want to compare their index.html to our src/templates/vrview.pug.
When on a HDRi page with the viewer embedded, use this JavaScript code to find the current yaw: vrview_window.contentWindow.yaw(). This can be passed as default_yaw parameter to the iframe.
Celery
Pillar requires Celery for background task processing. This in turn requires a backend and a broker, for which the default Pillar configuration uses Redis and RabbitMQ.
You can run the Celery Worker using manage.py celery worker.
Find other Celery operations with the manage.py celery command.
Elasticsearch
Pillar uses Elasticsearch to power the search engine. You will need to run the manage.py elastic reset_index command to initialize the indexing. If you need to reindex your documents in elastic you run the manage.py elastic reindex command.
Translations
If the language you want to support doesn't exist, you need to run: translations init es_AR.
Every time a new string is marked for translation you need to update the entire catalog: translations update
And once more strings are translated, you need to compile the translations: translations compile
*To mark strings strings for translations in Python scripts you need to wrap them with the flask_babel.gettext function. For .pug templates wrap them with _().*