Metadata-Version: 2.1
Name: terra-opp
Version: 0.5.0
Summary: Observatoire Photographique des Paysages
Home-page: https://github.com/Terralego/terra-opp.git
Author: Makina Corpus
Author-email: terralego-pypi@makina-corpus.com
License: UNKNOWN
Description: [![Build Status](https://travis-ci.org/Terralego/terra-opp.svg?branch=master)](https://travis-ci.org/Terralego/terra-opp)
        [![codecov](https://codecov.io/gh/Terralego/terra-opp/branch/master/graph/badge.svg)](https://codecov.io/gh/Terralego/terra-opp)
        [![PyPi version](https://pypip.in/v/terra-opp/badge.png)](https://pypi.org/project/terra-opp/)
        
        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
        
        ```bash
        ./manage.py create_observatory_layer -n observatory
        ```
        
        Then get the given primary key, for example 10.
        
        ### Settings needed to be set
        
        ```python
        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 :
         
         ```python
        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`:
        ```python
        TROPP_URL_FETCHER = 'custom.fetcher.custom_url_fetcher'
        ```
        
        ## To start a dev instance
        
        Define settings you wants in `test_opp` django project.
        
        ```sh
        docker-compose up
        ```
        
        Then initialize the database:
        
        ```sh
        docker-compose exec web /code/venv/bin/python3 /code/src/manage.py migrate
        ```
        
        and create the base layer:
        
        ```sh
        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:
        
        ```sh
        docker-compose exec web /code/venv/bin/python3 /code/src/manage.py test
        ```
        
        
        
        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
        
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
Provides-Extra: dev
