Observatoire Photographique des Paysages
Project description
Terralego Backend for OPP module
Requirements
- To handle pictures in templates, please install weasyprint requirement librairies https://weasyprint.readthedocs.io/en/stable/install.html#linux
First, create a data layer for observatory
./manage.py create_observatory_layer -n observatory
Then get the given primary key, for example 10.
Settings needed to be set
TROPP_OBSERVATORY_LAYER_PK=10 # replace by primary key given by command
VERSATILEIMAGEFIELD_RENDITION_KEY_SETS = {
'terra_opp': [
('original', 'url'),
('full', 'thumbnail__1500x1125'),
('list', 'thumbnail__300x225'),
('thumbnail', 'thumbnail__180x120'),
]
}
AUTH_USER_MODEL = 'terra_accounts.TerraUser'
Media files
If your project is not using the default django storage, then you must define and set a url fetcher in order to tell weasyprint where to find your media files.
An example of url fetcher using media files from S3 storage :
from django.conf import settings
from terra_opp.renderers import django_url_fetcher
def custom_url_fetcher(url, *args, **kwargs):
scheme = 'https' if settings.AWS_S3_SECURE_URLS else 'http'
url_prefix = f"{scheme}://{settings.AWS_S3_CUSTOM_DOMAIN}"
if url.startswith(url_prefix):
url = url.replace(
url_prefix,
settings.AWS_S3_ENDPOINT_URL + settings.AWS_STORAGE_BUCKET_NAME
)
return django_url_fetcher(url, *args, **kwargs)
And then you must refer to this custom url fetcher in your settings. Example if your fetcher is define in custom/fetcher.py
:
TROPP_URL_FETCHER = 'custom.fetcher.custom_url_fetcher'
To start a dev instance
Define settings you wants in test_opp
django project.
docker-compose up
Then initialize the database:
docker-compose exec web /code/venv/bin/python3 /code/src/manage.py migrate
and create the base layer:
docker-compose exec web /code/venv/bin/python3 /code/src/manage.py create_observatory_layer -n observatory
You can now edit your code. A django runserver is launched internally so the this is an autoreload server.
You can access to the api on http://localhost:8000/api/
Test
To run test suite, just launch:
docker-compose exec web /code/venv/bin/python3 /code/src/manage.py test
0.5.1 / 2021-02-17
- Add permissions generation on migrate
0.5.0 / 2021-02-17
- Add translations
- Add permissions and check
- Update installation process
- Enhance command
!! WARNING : BREAKING CHANGES !!
- You need to adapt your project settings and requirements
- Use new django-terra-settings instead of django-terra-utils
- Some terra-utils functions are directly integrated
0.4.2 / 2020-09-09
- Taking out city and themes from JSON properties, making it related objects on each viewpoint instance
- Improving related document serializer, it does not return the file as base64 anymore but only the access url
0.4.1 / 2020-08-26
- Removing signals and doing all the logic in the related viewsets
- Add possibility to make your own url fetcher :
- Add TROPP_URL_FETCHER settings and instructions
- Fix factory boy version
- using django.db.models.JSONField instead of django.contrib.postgres.fields
0.4.0 / 2020-07-30
-
Warning ! Breaking changes
- Due to uniformity of storage usages, you need to use file:// schema in your template to access pictures
- Deprecate defining observatory layer by name.
- Now you need to define layer pk instead -> TROPP_OBSERVATORY_LAYER_PK.
- Existing frontend applications should be fixed by TROPP_OBSERVATORY_LAYER_PK=1
-
fix picture property
-
fix prefetched data as list and not queryset
-
fix restframework not listed in setup requirements
-
Fix storage usage and make it working with weasyprint with default and custom storages
-
add correct dependencies to handle JPG
-
allow argument set layer name at creation
-
dont block if observatory layer pk not defined, to let ability to create it
-
block start without defined correct layer settings
-
add and improve configuration checking
-
add command to create point layer to used as observatory
-
set defined observatory layer by pk and provide info to frontend to avoid expecting hardcoded pk=1 layer for tiles
-
PK and corresponding endpoints are auto added to /api/settings to send dynamic configuration to frontend
-
Storage bucket is not required anymore.
0.3.8 / 2020-06-23
- Fix default settings
0.3.7 / 2020-06-19
- Support django 3.0
- add "as_versatile" filter for template usage
0.3.6 / 2019-12-19
- Compatibility with python 3.8, django 3.0 and DRF 3.11
- Add flake8 for linting
0.3.5 / 2019-11-04
- Fix MEDIA_URL may be empty, breaking url fetcher
0.3.4/ 2019-10-10
- Remove remarks field on Picture
0.3.3 / 2019-10-09
- Fix Manifest to include md files
0.3.0 / XXXX-XX-XX
First standalone release
- Extract from terra-common package to make it a standalone package
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.