Skip to main content

Geographic data visualizer backend for terra-visu

Project description

Build Status codecov PyPi version

Terra Layer

This django applications aims to provide an API to connect django_geosource to django_geodata. It serve an API that provides informations wanted by a frontend to configure data rendering.

Pre-requisite

You need the last version of docker and docker-compose to execute a dev instance.

Set configuration

In Django settings, you must set the different views provided to fronted, like this:

# Map settings. Sent to mapbox clientside.
TERRA_DEFAULT_MAP_SETTINGS = {
    'accessToken': '<your mapbox access token>',
    'backgroundStyle': '<background style file>',
    'center': [-0.655, 43.141], # Default view center
    'zoom': 7.7, # Default zoom
    'maxZoom': 19.9,
    'minZoom': 5,
    'fitBounds': { # Default bounding box
        'coordinates': [
            [-4.850, 46.776],
            [-0.551, 48.886]
        ],
    },
}

# Style and Legend autogeneration
TERRA_LAYER_STYLE_SETTINGS = {
    "circle_min_legend_height": 14, # minimum height for circle legend label.
    "fill_color": "#0000cc", # Default fill color
    "fill_opacity": 0.4, # Default fill opacity
    "stroke_color": "#ffffff", # Default stroke color
    "stroke_width": 0.3, # Default stroke width
}

Add a load xls command

You can define in the project using terra_layer a load_xls command that takes two parameters:

  • -s (--scene-name): receive the scene name.
  • -f (--file): the input xls file to load.

This command is launched when a file is send with a view. See the test project for an exemple.

To start a dev instance

Define settings you wants in test_terralayer django project.

docker-compose up

First start should failed as the database need to be initialized. Just launch the same command twice.

Then initialize the database:

docker-compose run --rm web /code/venv/bin/python3 /code/src/manage.py migrate

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 run --rm web /code/venv/bin/python3 /code/src/manage.py test

Contributing

You must use factoryboy factories to develop your tests. The factories are available at terra_layer/tests/factories

You must update the CHANGES.md file on each MR and increment version if needed.

0.5.1 / 2020-10-07

  • Feature: Show scene with it's map settings from config json field
  • Feature: Add credit from layer's source
  • Fix: Tabular view is exportable only if the global export parameter is set to true on the layer

0.5.0 / 2020-06-30

  • Fix bad format type sent to server
  • Add an option to not generate wizard
  • Fix circle legend generator using decimal value
  • Style generator: graduated, no data close to small value in legend
  • Style generator: deal with null value vs empty table
  • Gen style, fix color usage
  • Fix & remove default params to gen_legend_circle()
  • Add a dict level style in wizard config
  • Style generator, support of null value on layer style and legend
  • Updating a layer's source do not delete field settings anymore

0.4.13 / 2020-06-25

  • Update source layer by layer pk and not by name

0.4.12 / 2020-06-23

  • Fix missing property on interactions

0.4.11 / 2020-06-04

  • Command to replace the source of the layer

0.4.10 / 2020-04-27

  • Filter NULL value on discretize method

0.4.9 / 2020-03-19

  • Add missing display and config field properties

0.4.8 / 2020-03-16

  • Add import file process only if load_xls command exists
  • Add way to specify selectors when inserting in tree
  • Fix boundaries when no data
  • Allow to provide manual boundaries for graduated
  • Fix circle size legend
  • Add default style on field less layer
  • Implement auto legend for Proportional Symbol
  • Add mapbox gl style generator

0.4.7 / 2020-03-10

  • Add initial opacity of layer
  • Add insert in tree to ease processing
  • Review README

0.4.6 (2019-02-06)

Fixes

  • Field order was not saved
  • Don't save layer group on write

0.4.5 (2019-02-04)

Fixes

  • Replace SimpleRouteur by DefaultRouter that handle format param

0.4.4 (2019-01-22)

Fixes

  • Remove id to source field translation for fields

0.4.3 (2019-01-21)

Fixes

  • Fix field ordering bug
  • Fix migration bug on Group
  • Add permission on layers
  • Remove code slug is None

Quality

  • Increase coverage
  • Add a lot of tests
  • Add flake8 pipeline travis
  • Fix coveragerc

0.4.2 (2019-01-07)

Fixes

  • Fix load layer command

Improves

  • Add uuid field for layer to ease import/export

0.4.1 (2019-12-19)

Fixes

  • Handle group selectors and settings in tree

0.4.0 (2019-12-18)

Improves

  • Add tree edition support via Scene API
  • Can now have geolayers at tree root
  • Geolayers and groups can be mixed in any order

0.3.14 (2019-12-18)

  • Support python 3.8, django 3.0 and DRF 3.11
  • Improve ordering and filters
  • Drop requirement over url-filter

0.3.13 (2019-12-11)

Improves

  • Update code documentation
  • Allow layer ordering by view name
  • Allow layer search by name and settings
  • Allow layer filter by source

0.3.12 (2019-11-25)

Fixes

  • Custom styles must be anonymized on exports to be importables

0.3.11 (2019-11-21)

Fixes

  • Fixes some layer's export/import mistakes

0.3.10 (2019-11-20)

Improves

  • Add layer_dump and layer_load_dump management command to save and restore layers

0.3.9 (2019-11-19)

Improves

  • Add default layer activation support
  • Add layer_dump and layer_load_dump management command to save and restore layers

0.3.8 (2019-11-13)

Fix

  • Deep layer groups raises an error

0.3.7 (2019-11-12)

Fix

  • slug can now be modified and is optionnal

Improves

  • Add default layer activation support

0.3.6 (2019-11-07)

Fix

  • Fix geolayer urls double dash

0.3.5 (2019-11-06)

Improves

  • Set correct permission classes to viewsets

0.3.4 (2019-11-06)

Fixes

  • Fix geostore namespace that is not necessary anymore

0.3.3 (2019-11-06)

Fixes

  • Add Manifest

0.3.2 (2019-11-05)

Fixes

  • Fix url namespace of geostore

0.3.1 (2019-11-05)

Improves

  • Integrate terra permissions mecanism

0.3.0 (2019-10-18)

Release

  • First release

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page