django-for-runners


Namedjango-for-runners JSON
Version 0.17.4 PyPI version JSON
download
home_page
SummaryStore your GPX tracks of your running (or other sports activity) in django.
upload_time2023-11-07 18:46:16
maintainer
docs_urlNone
author
requires_python<4,>=3.9
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Django-ForRunners

![Logo](https://github.com/jedie/django-for-runners/raw/main/for_runners/static/Django-ForRunners128.png "Logo") Store your GPX tracks of your running (or other sports activity) in django.

[![pytest](https://github.com/jedie/django-for-runners/workflows/test/badge.svg?branch=main)](https://github.com/jedie/django-for-runners/actions)
[![Coverage Status on codecov.io](https://codecov.io/gh/jedie/django-for-runners/branch/main/graph/badge.svg)](https://codecov.io/gh/jedie/django-for-runners)
[![django_yunohost_integration @ PyPi](https://img.shields.io/pypi/v/django_yunohost_integration?label=django_yunohost_integration%20%40%20PyPi)](https://pypi.org/project/django_yunohost_integration/)
[![Python Versions](https://img.shields.io/pypi/pyversions/django_yunohost_integration)](https://github.com/jedie/django-for-runners/blob/main/pyproject.toml)
[![License GPL](https://img.shields.io/pypi/l/django_yunohost_integration)](https://github.com/jedie/django-for-runners/blob/main/LICENSE)

(The name **Django-ForRunners** has the origin from the great Android tracking app **ForRunners** by Benoît Hervier: [http://rvier.fr/#forrunners](http://rvier.fr/#forrunners) )

[![Install Django-ForRunners with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=django-for-runners_ynh)

> [django-for-runners_ynh](https://github.com/YunoHost-Apps/django-for-runners_ynh) allows you to install Django-ForRunners quickly and simply on a YunoHost server. If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.

## Features:


* GPX track management:
  * Upload GPX tracks
  * Import GPX tracks from commandline
  * Track analysis:
    * basics: Track length / Duration / Pace / Hart rate Up-/Downhill
    * Display route on OpenStreetMap map
    * Graphs with elevation / heart rate / cadence (if available in GPX data)
  * Data that is automatically extracted from the web:
    * Start/finish Address from OpenStreetMap
    * Start/finish weather information from metaweather.com
  * Store additional data:
    * Ideal track distance (for easier grouping/filtering tracks)
* sports competitions Management:
  * Create a List of Sport Events
    * Add participation to a event
    * link GPX track with a event participation
    * Store you event participation:
      * official track length
      * measured finisher time
      * Number of participants who have finished in your discipline
    * Add links to webpages relatet to this event
    * Record costs (entry fee, T-shirt etc.)
* common
  * Multiple user support (However: no rights management and currently only suitable for a handful of users)


## Developer information

### prepare

To start hacking: Just clone the project and start `./manage.py` to bootstrap a virtual environment:

```bash
# Install base requirements for bootstraping:
~$ sudo apt install python3-pip python3-venv

# Get the sources:
~$ git clone https://github.com/jedie/django-for-runners.git
~$ cd django-for-runners/

# Just call manage.py:
~/django-for-runners$ ./manage.py --help
...
[manage_django_project]
    code_style
    coverage
    install
    project_info
    publish
    run_dev_server
    safety
    tox
    update_req
...
```
This bootstrap is realized with: https://github.com/jedie/manage_django_project



Start Django's dev server:
```bash
~/django-for-runners$ ./manage.py run_dev_server
````
The web page is available in Port 8000, e.g.: `http://127.0.0.1:8000/`


Run tests, e.g.:
```bash
~/django-for-runners$ ./manage.py test
# or with coverage
~/django-for-runners$ ./manage.py coverage
# or via tox:
~/django-for-runners$ ./manage.py tox
````



### import GPX files

e.g.:
```
~/django-for-runners$ ./manage.py import_gpx --username <django_username> ~/backups/gpx_files
```

**Note:** It is no problem to start **import_gpx** with the same GPX files: Duplicate entries are avoided. The start/finish (time/latitude/longitude) are compared.

### backup

Create a backup into `.../backups/<timestamp>/` e.g.:
```
~/django-for-runners$ ./manage.py backup
```

The backup does:


* backup the database
* export all GPX tracks
* generate .csv files:
* a complete file with all running tracks
* one file for every user



## Screenshots

(All screenshots are here: [github.com/jedie/jedie.github.io/tree/master/screenshots/django-for-runners](https://github.com/jedie/jedie.github.io/tree/master/screenshots/django-for-runners))

## for-runers v0.6.0 2018-07-31 GPX Track.png

![for-runers v0.6.0 2018-07-31 GPX Track.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runers%20v0.6.0%202018-07-31%20GPX%20Track.png "for-runers v0.6.0 2018-07-31 GPX Track.png")

## for-runners v0.4.0 2018-6-26 GPX info.png

![for-runners v0.4.0 2018-6-26 GPX info.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners%20v0.4.0%202018-6-26%20GPX%20info.png "for-runners v0.4.0 2018-6-26 GPX info.png")

## for-runners v0.6.0 2018-07-19 Event Costs.png

![for-runners v0.6.0 2018-07-19 Event Costs.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners%20v0.6.0%202018-07-19%20Event%20Costs.png "for-runners v0.6.0 2018-07-19 Event Costs.png")

## print a small overview

![for-runners v0.10.0 2010-06-26 print small overview 1.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners%20v0.10.0%202010-06-26%20print%20small%20overview%201.png "for-runners v0.10.0 2010-06-26 print small overview 1.png")

![for-runners v0.10.0 2010-06-26 print small overview 2.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners%20v0.10.0%202010-06-26%20print%20small%20overview%202.png "for-runners v0.10.0 2010-06-26 print small overview 2.png")


## some notes

### GPX storage

Currently we store the unchanged GPX data in a TextField.

### static files

We collect some JavaScript files, for easier startup. These files are:

| Project Homepage                      | License                                                                                   | storage directory                                                                                                   |
| ------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| [leafletjs.com](http://leafletjs.com) | [Leaflet licensed under BSD](https://github.com/Leaflet/Leaflet/blob/master/LICENSE)      | [for_runners/static/leaflet/](https://github.com/jedie/django-for-runners/tree/master/for_runners/static/leaflet)   |
| [dygraphs.com](http://dygraphs.com)   | [dygraphs licensed under MIT](https://github.com/danvk/dygraphs/blob/master/LICENSE.txt)  | [for_runners/static/dygraphs/](https://github.com/jedie/django-for-runners/tree/master/for_runners/static/dygraphs) |
| [chartjs.org](http://www.chartjs.org) | [Chart.js licensed under MIT](https://github.com/chartjs/Chart.js/blob/master/LICENSE.md) | [for_runners/static/chartjs/](https://github.com/jedie/django-for-runners/tree/master/for_runners/static/chartjs)   |

### Precision of coordinates

GPX files from Garmin (can) contain:


* latitude with 29 decimal places
* longitude with 28 decimal places
* elevation with 19 decimal places

The route on OpenStreetMap does not look more detailed, with more than 5 decimal places.

See also: [https://wiki.openstreetmap.org/wiki/Precision_of_coordinates](https://wiki.openstreetmap.org/wiki/Precision_of_coordinates)


## Make new release

We use [cli-base-utilities](https://github.com/jedie/cli-base-utilities#generate-project-history-base-on-git-commitstags) to generate the history in this README.


To make a new release, do this:

* Increase your project version number
* Run tests to update the README
* commit the changes
* Create release


## Django compatibility

| django-for-runners | django version | python              |
|--------------------|----------------|---------------------|
| >=v0.16.0          | 4.1            | 3.9, 3.10, 3.11     |
| >=v0.15.0          | 3.2, 4.0, 4.1  | 3.7, 3.8, 3.9, 3.10 |
| >=v0.14.0          | 3.2            | 3.7, 3.8, 3.9, 3.10 |
| >=v0.12.0          | 2.2            | 3.7, 3.8, 3.9, 3.10 |
| >=v0.11.0          | 2.2            | 3.7, 3.8, 3.9       |
| >=v0.7.1           | 2.1            | 3.5, 3.6, 3.7       |
| v0.5.x             | 2.0            | 3.5, 3.6, 3.7       |

(See also combinations in [tox settings in pyproject.toml](https://github.com/jedie/django-for-runners/blob/main/pyproject.toml) and [github actions](https://github.com/jedie/django-for-runners/blob/main/.github/workflows/tests.yml))


## Backwards-incompatible changes


### v0.16.0

We switched from Poetry to pip-tools and https://github.com/jedie/manage_django_project
Just remove the old Poetry venv and bootstrap by call the `./manage.py`, see above.

We also remove different Django Versions from test matrix and just use the current newest version.
Because this is a project and not really a reuse-able-app ;)




## history


[comment]: <> (✂✂✂ auto generated history start ✂✂✂)

* [v0.17.4](https://github.com/jedie/django-for-runners/compare/v0.17.3...v0.17.4)
  * 2023-11-07 - audo generate README history
  * 2023-11-07 - Update Requirements
  * 2023-11-07 - Update UploadGpxFileForm
  * 2023-04-05 - Update to manage-django-project v0.3.0rc0
  * 2023-04-05 - Bugfixes:
  * 2023-04-04 - Switch to "managed-django-project" template:
* [v0.17.3](https://github.com/jedie/django-for-runners/compare/v0.17.2...v0.17.3)
  * 2023-04-03 - Bugfix check if Postgres is used and migration not done
* [v0.17.2](https://github.com/jedie/django-for-runners/compare/v0.17.1...v0.17.2)
  * 2023-04-02 - release 0.17.2
  * 2023-04-02 - Bugfix adding all template files
* [v0.17.1](https://github.com/jedie/django-for-runners/compare/v0.17.0...v0.17.1)
  * 2023-04-02 - Bugfix packaging and missing files
  * 2023-04-02 - update link to https://github.com/kbr/autotask

<details><summary>Expand older history entries ...</summary>

* [v0.17.0](https://github.com/jedie/django-for-runners/compare/v0.16.0...v0.17.0)
  * 2023-04-02 - Bugfix edit a `GpxModel` instance in admin with a large GPX track
  * 2023-04-02 - Bugfix manage call and merge project test code
  * 2023-04-02 - update ProjectSetupTestCase
  * 2023-04-02 - fix code style
  * 2023-04-02 - Update requirements
  * 2023-04-02 - apply manages projects
  * 2023-04-02 - -prod_settings
  * 2023-04-02 - update project
* [v0.16.0](https://github.com/jedie/django-for-runners/compare/v0.15.0...v0.16.0)
  * 2023-03-13 - update requirements
  * 2023-03-12 - code cleanup: Remove obsolete file
  * 2023-03-12 - Code cleanup around init
  * 2023-03-12 - Use https://github.com/jedie/manage_django_project
  * 2023-03-11 - Update README.md
  * 2023-01-27 - poetry -> piptools
  * 2023-02-07 - manageprojects
  * 2023-01-31 - use .venv, update req
  * 2022-08-30 - check_editor_config
  * 2022-08-30 - NEW: Attach files and images to "Event Participations
  * 2022-08-30 - Rename model field participation person to user
* [v0.15.0](https://github.com/jedie/django-for-runners/compare/v0.14.0...v0.15.0)
  * 2022-08-29 - bugfix publishing
  * 2022-08-29 - update README
  * 2022-08-29 - Use 'for_runners_project.settings.local' as default
  * 2022-08-29 - Bugfix run_dev_server command
  * 2022-08-23 - WIP: Replace README.creole with README.md
  * 2022-08-17 - Bugfix test settings
  * 2022-08-17 - add info
  * 2022-08-17 - bugfix "make update-rst-readme"
  * 2022-08-17 - Use AlwaysLoggedInAsSuperUserMiddleware from django-tools for local dev. server
  * 2022-08-17 - Use django_tools.management.commands.run_testserver
  * 2022-08-17 - update requirements
  * 2022-08-17 - update poetry, too
  * 2022-08-16 - Speedup CI
  * 2022-08-16 - tox: run with multiple django versions
* [v0.14.0](https://github.com/jedie/django-for-runners/compare/v0.13.0...v0.14.0)
  * 2022-08-16 - +"make lint"
  * 2022-08-16 - Update to Django 3.2
  * 2022-08-16 - fix editorconfig
  * 2022-08-16 - uses: codecov/codecov-action@v2
  * 2022-07-06 - Bump lxml from 4.8.0 to 4.9.1
  * 2022-06-02 - Bump pillow from 9.1.0 to 9.1.1
  * 2022-04-16 - Bugfix backup
* [v0.13.0](https://github.com/jedie/django-for-runners/compare/v0.12.1...v0.13.0)
  * 2022-04-15 - v0.13.0rc1
  * 2022-04-15 - Refresh all metaweather/OSM fixtures and use tooling from bx_django_utils
  * 2022-04-15 - Fix Tests by addning ignored .json fixture files
  * 2022-04-15 - fix coverage report
  * 2022-04-15 - fix darker in github actions
  * 2022-04-15 - set v0.13.0
  * 2022-04-15 - fix styles/tests
  * 2022-04-15 - Remove "/development/" and mode "/src/"
  * 2022-04-15 - fix tox config
  * 2022-04-15 - fix code style
  * 2022-04-15 - use darker
  * 2022-04-15 - Update Project setup
  * 2022-04-15 - master -> main
  * 2022-04-15 - Update requirements
  * 2022-03-12 - Bump pillow from 9.0.0 to 9.0.1
  * 2022-02-10 - Bump django from 2.2.26 to 2.2.27
  * 2022-01-13 - Bump django from 2.2.25 to 2.2.26
  * 2022-01-13 - Bump pillow from 8.4.0 to 9.0.0
  * 2021-12-15 - Bump django from 2.2.24 to 2.2.25
  * 2021-12-13 - Bump lxml from 4.6.4 to 4.6.5
* [v0.12.1](https://github.com/jedie/django-for-runners/compare/v0.12.0...v0.12.1)
  * 2021-11-22 - fix readme
  * 2021-11-22 - Update pythonapp.yml
  * 2021-11-22 - update requirements
  * 2021-11-22 - cleanup gitignore
  * 2021-11-22 - update github actions
  * 2021-05-23 - Update Github CI config
  * 2021-05-23 - Code cleanup
  * 2021-05-23 - remove Travis CI config
  * 2021-05-23 - Update requirements + code changes for bx_py_utils -> bx_django_utils
* [v0.12.0](https://github.com/jedie/django-for-runners/compare/v0.11.0...v0.12.0)
  * 2021-01-17 - prepare v0.12.0 release
  * 2021-01-17 - update README
  * 2021-01-17 - Link to django-for-runners_ynh in README
  * 2021-01-17 - fix logo in README
  * 2021-01-17 - update badge in README
  * 2021-01-17 - fix GPX file upload test
  * 2021-01-17 - update deps
  * 2020-12-30 - update tests
  * 2020-12-30 - update requirements
  * 2020-12-30 - set version to 0.12.0.rc3
  * 2020-12-30 - remove colorama and cleanup
  * 2020-12-30 - update to latest bx_py_utils
  * 2020-12-30 - install poetry via pip and update pip in venv, too
  * 2020-11-25 - Fix code style
  * 2020-11-25 - Add view to serve MEDIA files only for allowed user
  * 2020-11-25 - print to stderr (so it's not in the dumpdata ;)
  * 2020-11-25 - Add "adminer" container to dev run
  * 2020-11-25 - add "make dumpdata"
  * 2020-11-25 - fix project setup
  * 2020-11-24 - fix "make fix-code-style"
  * 2020-11-24 - fix coverage
  * 2020-11-24 - Bugfix "make pytest" by using the test settings
  * 2020-11-24 - check if cache is working in tests
  * 2020-11-24 - use LocMemCache as default cache backend
  * 2020-11-24 - geo reverse test: check if cache is filles
  * 2020-11-24 - Add one missing request mock in tests
  * 2020-11-24 - Activate "pytest-randomly"
  * 2020-11-24 - Mock HTTP-Requests and django file storage in tests
  * 2020-11-23 - migrate deployment setup from PyInventory
  * 2020-11-23 - Fix test
  * 2020-11-23 - Work a round for created static/media files in tests
  * 2020-11-23 - Mock some nominatim.openstreetmap.org requests in tests
  * 2020-11-14 - mock geo() request against "nominatim.openstreetmap.org/reverse"
  * 2020-11-14 - Remove django-tools API change warnings
  * 2020-11-14 - Don't use pytest-parallel on CI
  * 2020-11-14 - add "pytest-parallel"
  * 2020-11-14 - try to fix github actions
  * 2020-11-14 - try optimize github action?
  * 2020-11-14 - fix tox selenium tests by "passenv = *"
  * 2020-11-14 - fix setup
  * 2020-11-14 - WIP: fix docker setup
  * 2020-11-14 - add github actions
  * 2020-11-14 - set versions number to 0.12.0.rc1
  * 2020-11-14 - Add deployment stuff
  * 2020-11-14 - WIP: Update project setup
  * 2020-11-14 - add manage files
  * 2020-11-14 - update Makefile
  * 2020-11-14 - WIP: update django project
  * 2020-11-14 - remove git_sync.sh
  * 2020-11-14 - move to /src/
  * 2020-11-14 - +dev_scripts/fill_translations.py
  * 2020-11-14 - update project meta files
* [v0.11.0](https://github.com/jedie/django-for-runners/compare/v0.10.1...v0.11.0)
  * 2020-07-04 - Update README
  * 2020-07-04 - move download scripts into /dev_scripts/
  * 2020-07-04 - fix code styles
  * 2020-07-04 - add .flake8 config file
  * 2020-07-04 - Update requirements
  * 2020-07-04 - Add "make update"
  * 2020-06-09 - apply pyupgrade
  * 2020-06-09 - +pyupgrade
  * 2020-06-09 - apply autopep8
  * 2020-06-09 - setup autopep8 in pyproject.toml
  * 2020-06-09 - Apply isort
  * 2020-06-09 - add isort config file
  * 2020-06-09 - apply flynt
  * 2020-06-09 - Fix SVG test by compare it via parsed DOM-Tree ;)
  * 2020-06-06 - remove double elements in short-address
  * 2020-06-06 - disable pytest "randomly" plugin by default
  * 2020-06-06 - remove obsolete "update" cli command
  * 2020-06-06 - deactivate test TODO: Update it
  * 2020-06-06 - remove obsolete test
  * 2020-06-06 - fix for_runners/tests/test_svg.py
  * 2020-06-06 - update doctest in geo.py and add logging output
  * 2020-06-06 - Use poetry and a make file
  * 2020-06-09 - Update base.txt
  * 2020-06-06 - update gunicorn server
  * 2020-06-06 - Bugfix 'fill_basedata' manage command
  * 2019-08-25 - WIP: update tests
  * 2019-08-25 - Add a hint on UnicodeEncodeError in own manage commands
  * 2019-08-25 - refactor gpx import code and tests
  * 2019-08-25 - add link to: https://github.com/rsjrny/Garmin-Connect-Export
  * 2019-08-25 - remove link to gpsies.com
* [v0.10.1](https://github.com/jedie/django-for-runners/compare/v0.10.0...v0.10.1)
  * 2019-08-09 - Update .travis.yml
  * 2019-08-09 - list_display_links = ("event_name",)
  * 2019-06-26 - Add start date and costs to "Event Participation" table
* [v0.10.0](https://github.com/jedie/django-for-runners/compare/v0.9.0...v0.10.0)
  * 2019-06-26 - update README
  * 2019-04-08 - tweak print view
  * 2019-04-08 - generate missing svg files
  * 2019-04-08 - Bugfix generate_svg
  * 2019-04-08 - NEW: print mini
  * 2019-04-03 - fixup! fix test
  * 2019-04-03 - only code cleanup
  * 2019-04-03 - add date filter on gpx tracks
  * 2019-04-03 - fix test
  * 2019-04-03 - Accept optional server bind address
  * 2019-04-03 - pip for python 3 is needed for boot
* [v0.9.0](https://github.com/jedie/django-for-runners/compare/v0.8.1...v0.9.0)
  * 2019-04-02 - fixup! skip after_install_callback() on "publish"
  * 2019-04-02 - only code formatting
  * 2019-04-02 - skip after_install_callback() on "publish"
  * 2019-04-02 - WIP: fix tests on python 3.5
  * 2019-04-02 - refactor SVG and GPX files
  * 2019-04-02 - update tests
  * 2019-04-02 - use cutted b32encode sha512 hash
  * 2019-04-02 - update tests for "add" -> "upload" redirect
  * 2019-04-02 - USE_TZ = True
  * 2019-04-02 - "run-gunicorn" -> "run-server"
  * 2019-04-02 - redirect the defaul add view to upload form view
  * 2019-04-02 - Bugfix: Ensure that there are no more than 2 decimal places
  * 2019-04-01 - use django_tools.file_storage.file_system_storage.OverwriteFileSystemStorage
  * 2019-04-01 - use colorlog
  * 2019-04-01 - use django_tools.exception_plus
  * 2019-04-01 - call self.full_clean() in save()
  * 2019-04-01 - bugfix "bin/for_runners update"
  * 2019-03-21 - WIP
  * 2019-03-21 - +** NEW: export GPX Data via {{{django-import-export}}}
  * 2019-03-21 - chmod +x
  * 2019-03-21 - just run black code formatting
  * 2019-03-21 - +run_black.sh
  * 2019-01-31 - fixup! update tests
  * 2019-01-31 - +test "for_runers update" command
  * 2019-01-31 - fix --version and test ;)
  * 2019-01-31 - print("Start up...")
  * 2019-01-31 - hack: use "run-gunicorn" as default action
  * 2019-01-31 - NEW: Update installation with: {{{for_runners update}}}
  * 2018-12-17 - remove admin action "export as json"
  * 2018-12-17 - cleanup export stuff
  * 2018-12-17 - create normal and dev.server starter
  * 2018-12-11 - nicer export
  * 2018-12-11 - remove debug prints
  * 2018-12-11 - +Andreas Hudzieczek
  * 2018-12-11 - use gunicorn as default
  * 2018-12-11 - +gunicorn
  * 2018-12-11 - WIP: django-import-export
  * 2018-11-18 - only code style
  * 2018-11-18 - add gunicorn as requirements
  * 2018-11-18 - supported running gunicorn server
  * 2018-11-18 - README
  * 2018-11-18 - finish backup/export
  * 2018-11-18 - WIP: export .csv files on backup
  * 2018-11-18 - +for_runners_project
  * 2018-11-18 - update click to v7.0
  * 2018-11-17 - WIP: Backup/export via cli: "$ for_runners backup"
  * 2018-11-17 - move virtualenv path helper
  * 2018-11-17 - refactor call manage command
  * 2018-11-17 - DjangoForRunnersEnv -> Django-ForRunners
  * 2018-11-17 - regenerate all SVG files by: "$ for_runners recreate_svg"
  * 2018-11-17 - remove " && bash -i" from desktop file
  * 2018-11-17 - +start by hand
  * 2018-09-16 - setup event admin change list
  * 2018-09-16 - Bugfix: Open browser only one time
  * 2018-09-15 - Create xdg-open desktop starter under linux
  * 2018-09-12 - +Windows
  * 2018-09-12 - Patches for windows usage
  * 2018-09-12 - Work-a-round for windows
  * 2018-09-12 - Create boot_django_for_runners.cmd
  * 2018-09-09 - add icon link in html head
  * 2018-09-09 - Update README.creole
  * 2018-09-09 - Add logo as 128x128 png
  * 2018-09-09 - Add logo as SVG
  * 2018-09-09 - fix tests for python 3.5
  * 2018-09-07 - update README
  * 2018-09-07 - refactory startup and rename "for_runners_test_project" -> "for_runners_project"
* [v0.8.1](https://github.com/jedie/django-for-runners/compare/v0.8.0...v0.8.1)
  * 2018-09-03 - v0.8.1
  * 2018-09-03 - bin/run_dev_server -> bin/for_runners
* [v0.8.0](https://github.com/jedie/django-for-runners/compare/v0.7.1...v0.8.0)
  * 2018-09-03 - v0.8 and README
  * 2018-09-03 - use pip cache from travis
  * 2018-09-03 - https://github.com/travis-ci/travis-ci/issues/8589#issuecomment-372947199
  * 2018-09-03 - +test boot script
  * 2018-09-03 - WIP: boot/setup/usage
  * 2018-09-03 - Update README.creole
  * 2018-09-03 - auto call 'fill_basedata'
  * 2018-09-03 - nicer error if django can't import
  * 2018-09-02 - Add links from event participation to GPX tracks
  * 2018-09-02 - GpxModel.participation ForeignKey->OneToOneField
* [v0.7.1](https://github.com/jedie/django-for-runners/compare/v0.7.0...v0.7.1)
  * 2018-09-02 - fix tests test with django 2.1
  * 2018-09-02 - fixup! fix staff user tests
  * 2018-09-02 - fix staff user tests
  * 2018-09-02 - Update README.creole
* [v0.7.0](https://github.com/jedie/django-for-runners/compare/v0.6.0...v0.7.0)
  * 2018-09-02 - update readme
  * 2018-09-02 - +AUTHORS
  * 2018-09-02 - fix #2
  * 2018-08-31 - move manipluation of list_display and list_filter
  * 2018-08-28 - update tests
  * 2018-08-28 - Add TODO
  * 2018-08-28 - handle ZeroDivisionError calculating pace
  * 2018-08-28 - redirect to change view after upload
  * 2018-08-21 - catch NotImplementedError and NotSupportedError for missing sqlite distinct feature
  * 2018-08-21 - install pytest version compatible with pytest-django
  * 2018-08-21 - update tests: OSM data changed
  * 2018-08-21 - WIP: Add links from gpx tracks to other admin change view
  * 2018-08-21 - Add username to headline
  * 2018-08-21 - display user names only if there are tracks from more than one user
  * 2018-08-21 - handle invalid GPX data while importing
  * 2018-08-21 - Replace "Change GPX Track" headline with more informations
  * 2018-08-21 - refactor route/graphs creation and style
  * 2018-08-21 - Bugfix admin filter "By has event": Update since model refactoring
  * 2018-08-21 - Bugfix admin filter "By has net duration": Update since model refactoring
  * 2018-07-31 - Update README.creole
  * 2018-07-31 - update screenshot
  * 2018-07-31 - refactor duration field
  * 2018-07-31 - for_runners/static/{dygraph => dygraphs}/
  * 2018-07-31 - cleanup
  * 2018-07-24 - replace gxp track chart.js with dygraph
  * 2018-07-19 - add link to all screenshots
  * 2018-07-19 - +for-runners v0.6.0 2018-07-19 Event Costs.png
* [v0.6.0](https://github.com/jedie/django-for-runners/compare/v0.5.0...v0.6.0)
  * 2018-07-19 - release v0.6
  * 2018-07-19 - tune event statistics
  * 2018-07-19 - Add some basic event statistics
  * 2018-07-19 - help text
  * 2018-07-19 - +CostModel
  * 2018-07-19 - split admin.py
  * 2018-07-19 - bugfix change event view
  * 2018-07-12 - WIP: event participation
* [v0.5.0](https://github.com/jedie/django-for-runners/compare/v0.4.0...v0.5.0)
  * 2018-07-04 - ignore pypy3 tests, because of "decimal.InvalidOperation"
  * 2018-07-04 - install via pypi
  * 2018-07-04 - +DocString
  * 2018-07-04 - +docutils
  * 2018-07-04 - update README
  * 2018-07-04 - WIP: fix travis
  * 2018-07-04 - update travis config
  * 2018-07-04 - update tox.ini
  * 2018-07-04 - recreate migrations
  * 2018-07-04 - fix length and duration in chartjs
  * 2018-07-04 - update to change OSM data
  * 2018-07-04 - code cleanup
  * 2018-07-04 - add a AppConfig
  * 2018-07-04 - remove autotask
  * 2018-07-04 - FIXME: https://bitbucket.org/kbr/autotask/pull-requests/3/
  * 2018-07-04 - Add http://editorconfig.org config file with isort config
  * 2018-07-04 - django-tools>=0.40.2
  * 2018-07-03 - remove old migrations
  * 2018-07-03 - update squashed migrations
  * 2018-07-03 - squash migrations
  * 2018-07-03 - store gpx in TextField and update svg save
  * 2018-07-03 - update tests for django 2.0
  * 2018-07-03 - update test references for gpxpy v1.3.2 see:
  * 2018-07-03 - WIP
  * 2018-07-02 - Add 'has GPX tracks' filter to Event
  * 2018-06-28 - change event model: "start_time" -> "start_date"
  * 2018-06-28 - Add "has event" filter
  * 2018-06-28 - remove double entry
  * 2018-06-28 - nicer length/duration in change list
  * 2018-06-28 - Add YAPF config file
  * 2018-06-28 - add change list filter 'has net duration'
  * 2018-06-28 - +!/.travis.yml
  * 2018-06-28 - $ ./manage.py fill_basedata
  * 2018-06-28 - split models.py
  * 2018-06-28 - Add 'net duration' field, for the officially measured time and use it for calculations if available.
  * 2018-06-28 - Don't generate SVG if it's already done in the past.
  * 2018-06-28 - Don't request address if start/finish address already set
  * 2018-06-28 - bugfix human_duration() DocTests
  * 2018-06-28 - change event number to positiv integer
  * 2018-06-28 - make event links optional
  * 2018-06-28 - bugfix "GPX info" table
  * 2018-06-28 - DATA_UPLOAD_MAX_MEMORY_SIZE = 5000000
  * 2018-06-27 - Add "ideal distances"
  * 2018-06-27 - bugfix get weather
  * 2018-06-27 - Bugfix change view: remove obsolete code
  * 2018-06-27 - remove obsolete code
  * 2018-06-27 - speedup by deactivating some django debug toolbar panels
* [v0.4.0](https://github.com/jedie/django-for-runners/compare/v0.3.0...v0.4.0)
  * 2018-06-26 - update screenshots + version: v0.4.0
  * 2018-06-26 - remove Streetmap image generated via geotiler
  * 2018-06-26 - enable bezier curves
  * 2018-06-26 - Nicer track map with kilometer points
  * 2018-06-26 - change Statistics links in filter section
  * 2018-06-26 - code style
  * 2018-06-26 - Add 'creator' to every track and use it as changelist filter
  * 2018-06-26 - NEW: Display GPX metadata
  * 2018-06-26 - Speedup by using a cache for gpxpy instances
  * 2018-06-26 - Add links to github/PyPi in admin footer
  * 2018-06-26 - NEW: "GPX Info"
  * 2018-06-26 - Bugfix upload GPX files: set user
  * 2018-06-26 - Skip weather if date is None
  * 2018-06-25 - combine track filters with statistic views
  * 2018-06-25 - display min/avg/max pace in distance statistics
* [v0.3.0](https://github.com/jedie/django-for-runners/compare/v0.2.0...v0.3.0)
  * 2018-06-23 - fixup! README
  * 2018-06-23 - README
  * 2018-06-23 - Update tests for change admin title
  * 2018-06-23 - better info on import with existing tracks
  * 2018-06-23 - +for-runners v0.3.0 2018-6-23 Distance Statistics.png
  * 2018-06-23 - fixup! handle if no weather data is available
  * 2018-06-23 - expand user path
  * 2018-06-23 - code style
  * 2018-06-23 - handle if no weather data is available
  * 2018-06-23 - add distance statistics
  * 2018-06-23 - Change django title/branding
  * 2018-06-23 - add weather information from metaweather.com
  * 2018-06-23 - description='Store your GPX tracks of your running (or other sports activity) in django.'
* [v0.2.0](https://github.com/jedie/django-for-runners/compare/v0.1.1...v0.2.0)
  * 2018-06-21 - Update README.creole
  * 2018-06-21 - Squashed commit of the following:
  * 2018-06-17 - Add static files (Charts.JS + Leaflet)
* [v0.1.1](https://github.com/jedie/django-for-runners/compare/v0.1.0...v0.1.1)
  * 2018-06-15 - release v0.1.1
  * 2018-06-15 - update screnshots
  * 2018-06-15 - add tests for gpx2svg - TODO: Use correct WGS 84 calculations
  * 2018-06-15 - Don't use {{ forloop.counter }} for kilometers in leaflet map
  * 2018-06-15 - Bugfix short_address if town is == "state"
  * 2018-06-15 - +list_filter: tracked_by
  * 2018-06-15 - add tests for create GPX in admin
  * 2018-06-15 - bugfix if GPX extension doesn't exists
  * 2018-06-15 - Bugfix creating GPX entry in admin
* [v0.1.0](https://github.com/jedie/django-for-runners/compare/v0.0.4...v0.1.0)
  * 2018-06-15 - move svg to collapse section
  * 2018-06-15 - cleanup popup
  * 2018-06-14 - typo
  * 2018-06-14 - Display every km on map
  * 2018-06-14 - Render interactive OpenStreetMap track map with Leaflet JS
  * 2018-06-14 - +== run tests
  * 2018-06-14 - setup selenium tests
  * 2018-06-13 - Don't check content type
  * 2018-06-13 - start/finish links to openstreetmap
  * 2018-06-12 - use a better filename for the map
  * 2018-06-12 - code cleanup
  * 2018-06-12 - nicer admin change list view
  * 2018-06-12 - sort length, duration & pace in admin
  * 2018-06-12 - Add DocTests
  * 2018-06-12 - print -> logging
  * 2018-06-12 - Display hours, too + DocTests
* [v0.0.4](https://github.com/jedie/django-for-runners/compare/v0.0.3...v0.0.4)
  * 2018-06-12 - Gpxity currently not used
  * 2018-06-12 - +== credits ==
  * 2018-06-12 - skip geotiler if SyntaxError while import, see also:
  * 2018-06-12 - Update README.creole
  * 2018-06-12 - Geotiler needs Python 3.6 or later
  * 2018-06-12 - Better Links to events
  * 2018-06-12 - TODO: Use UTC and handle time zone
  * 2018-06-12 - activate MAP_DOWNLOAD by default
  * 2018-06-12 - gpxpy #117 is implemented, but not release on PyPi, see:
  * 2018-06-12 - GPX error handling + tests
  * 2018-06-12 - run for_runners tests, too
  * 2018-06-12 - typo
* [v0.0.3](https://github.com/jedie/django-for-runners/compare/v0.0.2...v0.0.3)
  * 2018-06-12 - Use autotask to generate map in background
  * 2018-06-12 - create new figure for map
  * 2018-06-05 - +import GPX files
  * 2018-06-05 - +.gitignore
  * 2018-06-05 - +== try-out
  * 2018-06-05 - Use last TLS version
  * 2018-06-02 - min/average/max heart rate
  * 2018-06-02 - use gpxpy 'ns-namespace' branch to fix: https://github.com/tkrajina/gpxpy/issues/117
  * 2018-06-02 - redirect to /admin/for_runners/gpxmodel/
* [v0.0.2](https://github.com/jedie/django-for-runners/compare/v0.0.1...v0.0.2)
  * 2018-05-31 - generate SVG from track
  * 2018-05-31 - v0.0.2
  * 2018-05-30 - +git_sync.sh
  * 2018-05-30 - remove tests with django cms 3.4
  * 2018-05-30 - code cleanup
  * 2018-05-30 - update requirements
  * 2018-05-30 - remove django-meta
  * 2018-05-30 - remove unused templates
  * 2018-05-30 - Update README.creole
* [v0.0.1](https://github.com/jedie/django-for-runners/compare/6e05957...v0.0.1)
  * 2018-05-30 - add first code version
  * 2018-05-29 - Initial commit

</details>


[comment]: <> (✂✂✂ auto generated history end ✂✂✂)


## links

| Homepage | [http://github.com/jedie/django-for-runners](http://github.com/jedie/django-for-runners)     |
| PyPi     | [https://pypi.org/project/django-for-runners/](https://pypi.org/project/django-for-runners/) |

### activity exporter

It's sometimes hard to find a working project for exporting activities.
So here tools that i use currently:


* [Garmin-Connect-Export](https://github.com/rsjrny/Garmin-Connect-Export) from rsjrny

### alternatives (OpenSource only)


* [https://github.com/pytrainer/pytrainer](https://github.com/pytrainer/pytrainer) (Desktop Program)
* [https://github.com/GoldenCheetah/GoldenCheetah/](https://github.com/GoldenCheetah/GoldenCheetah/) (Desktop Program)

Online tools:


* [https://www.j-berkemeier.de/ShowGPX.html](https://www.j-berkemeier.de/ShowGPX.html) (de)

## credits

The whole thing is based on many excellent projects. Especially the following:


* [gpxpy](https://pypi.org/project/gpxpy/) GPX file parser
* [Leaflet JS](https://leafletjs.com) A JS library for interactive maps used to render the track on [OpenStreetMap](https://openstreetmap.org/)
* [dygraphs](http://dygraphs.com) open source JavaScript charting library
* [Chart.js](https://www.chartjs.org) HTML5 Charts
* [geopy](https://pypi.org/project/geopy/) Get geo location names of the GPX track start/end point
* [matplotlib](https://pypi.org/project/matplotlib/) plotting 2D graphics
* [autotask](https://pypi.org/project/autotask/) schedule background jobs
* [svgwrite](https://pypi.org/project/svgwrite/) Generating SVG file

## donation


* [paypal.me/JensDiemer](https://www.paypal.me/JensDiemer)
* [Flattr This!](https://flattr.com/submit/auto?uid=jedie&url=https%3A%2F%2Fgithub.com%2Fjedie%2Fdjango-for-runners%2F)
* Send [Bitcoins](http://www.bitcoin.org/) to [1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F](https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F)

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "django-for-runners",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "<4,>=3.9",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "Jens Diemer <django-for-runners@jensdiemer.de>",
    "download_url": "https://files.pythonhosted.org/packages/95/3f/aad671e467d6ee6ccedd074037a6ecd0a39f9c4ec1a95ef0d60ad8bc4df6/django-for-runners-0.17.4.tar.gz",
    "platform": null,
    "description": "# Django-ForRunners\n\n![Logo](https://github.com/jedie/django-for-runners/raw/main/for_runners/static/Django-ForRunners128.png \"Logo\") Store your GPX tracks of your running (or other sports activity) in django.\n\n[![pytest](https://github.com/jedie/django-for-runners/workflows/test/badge.svg?branch=main)](https://github.com/jedie/django-for-runners/actions)\n[![Coverage Status on codecov.io](https://codecov.io/gh/jedie/django-for-runners/branch/main/graph/badge.svg)](https://codecov.io/gh/jedie/django-for-runners)\n[![django_yunohost_integration @ PyPi](https://img.shields.io/pypi/v/django_yunohost_integration?label=django_yunohost_integration%20%40%20PyPi)](https://pypi.org/project/django_yunohost_integration/)\n[![Python Versions](https://img.shields.io/pypi/pyversions/django_yunohost_integration)](https://github.com/jedie/django-for-runners/blob/main/pyproject.toml)\n[![License GPL](https://img.shields.io/pypi/l/django_yunohost_integration)](https://github.com/jedie/django-for-runners/blob/main/LICENSE)\n\n(The name **Django-ForRunners** has the origin from the great Android tracking app **ForRunners** by Beno\u00eet Hervier: [http://rvier.fr/#forrunners](http://rvier.fr/#forrunners) )\n\n[![Install Django-ForRunners with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=django-for-runners_ynh)\n\n> [django-for-runners_ynh](https://github.com/YunoHost-Apps/django-for-runners_ynh) allows you to install Django-ForRunners quickly and simply on a YunoHost server. If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.\n\n## Features:\n\n\n* GPX track management:\n  * Upload GPX tracks\n  * Import GPX tracks from commandline\n  * Track analysis:\n    * basics: Track length / Duration / Pace / Hart rate Up-/Downhill\n    * Display route on OpenStreetMap map\n    * Graphs with elevation / heart rate / cadence (if available in GPX data)\n  * Data that is automatically extracted from the web:\n    * Start/finish Address from OpenStreetMap\n    * Start/finish weather information from metaweather.com\n  * Store additional data:\n    * Ideal track distance (for easier grouping/filtering tracks)\n* sports competitions Management:\n  * Create a List of Sport Events\n    * Add participation to a event\n    * link GPX track with a event participation\n    * Store you event participation:\n      * official track length\n      * measured finisher time\n      * Number of participants who have finished in your discipline\n    * Add links to webpages relatet to this event\n    * Record costs (entry fee, T-shirt etc.)\n* common\n  * Multiple user support (However: no rights management and currently only suitable for a handful of users)\n\n\n## Developer information\n\n### prepare\n\nTo start hacking: Just clone the project and start `./manage.py` to bootstrap a virtual environment:\n\n```bash\n# Install base requirements for bootstraping:\n~$ sudo apt install python3-pip python3-venv\n\n# Get the sources:\n~$ git clone https://github.com/jedie/django-for-runners.git\n~$ cd django-for-runners/\n\n# Just call manage.py:\n~/django-for-runners$ ./manage.py --help\n...\n[manage_django_project]\n    code_style\n    coverage\n    install\n    project_info\n    publish\n    run_dev_server\n    safety\n    tox\n    update_req\n...\n```\nThis bootstrap is realized with: https://github.com/jedie/manage_django_project\n\n\n\nStart Django's dev server:\n```bash\n~/django-for-runners$ ./manage.py run_dev_server\n````\nThe web page is available in Port 8000, e.g.: `http://127.0.0.1:8000/`\n\n\nRun tests, e.g.:\n```bash\n~/django-for-runners$ ./manage.py test\n# or with coverage\n~/django-for-runners$ ./manage.py coverage\n# or via tox:\n~/django-for-runners$ ./manage.py tox\n````\n\n\n\n### import GPX files\n\ne.g.:\n```\n~/django-for-runners$ ./manage.py import_gpx --username <django_username> ~/backups/gpx_files\n```\n\n**Note:** It is no problem to start **import_gpx** with the same GPX files: Duplicate entries are avoided. The start/finish (time/latitude/longitude) are compared.\n\n### backup\n\nCreate a backup into `.../backups/<timestamp>/` e.g.:\n```\n~/django-for-runners$ ./manage.py backup\n```\n\nThe backup does:\n\n\n* backup the database\n* export all GPX tracks\n* generate .csv files:\n* a complete file with all running tracks\n* one file for every user\n\n\n\n## Screenshots\n\n(All screenshots are here: [github.com/jedie/jedie.github.io/tree/master/screenshots/django-for-runners](https://github.com/jedie/jedie.github.io/tree/master/screenshots/django-for-runners))\n\n## for-runers v0.6.0 2018-07-31 GPX Track.png\n\n![for-runers v0.6.0 2018-07-31 GPX Track.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runers%20v0.6.0%202018-07-31%20GPX%20Track.png \"for-runers v0.6.0 2018-07-31 GPX Track.png\")\n\n## for-runners v0.4.0 2018-6-26 GPX info.png\n\n![for-runners v0.4.0 2018-6-26 GPX info.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners%20v0.4.0%202018-6-26%20GPX%20info.png \"for-runners v0.4.0 2018-6-26 GPX info.png\")\n\n## for-runners v0.6.0 2018-07-19 Event Costs.png\n\n![for-runners v0.6.0 2018-07-19 Event Costs.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners%20v0.6.0%202018-07-19%20Event%20Costs.png \"for-runners v0.6.0 2018-07-19 Event Costs.png\")\n\n## print a small overview\n\n![for-runners v0.10.0 2010-06-26 print small overview 1.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners%20v0.10.0%202010-06-26%20print%20small%20overview%201.png \"for-runners v0.10.0 2010-06-26 print small overview 1.png\")\n\n![for-runners v0.10.0 2010-06-26 print small overview 2.png](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/django-for-runners/for-runners%20v0.10.0%202010-06-26%20print%20small%20overview%202.png \"for-runners v0.10.0 2010-06-26 print small overview 2.png\")\n\n\n## some notes\n\n### GPX storage\n\nCurrently we store the unchanged GPX data in a TextField.\n\n### static files\n\nWe collect some JavaScript files, for easier startup. These files are:\n\n| Project Homepage                      | License                                                                                   | storage directory                                                                                                   |\n| ------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |\n| [leafletjs.com](http://leafletjs.com) | [Leaflet licensed under BSD](https://github.com/Leaflet/Leaflet/blob/master/LICENSE)      | [for_runners/static/leaflet/](https://github.com/jedie/django-for-runners/tree/master/for_runners/static/leaflet)   |\n| [dygraphs.com](http://dygraphs.com)   | [dygraphs licensed under MIT](https://github.com/danvk/dygraphs/blob/master/LICENSE.txt)  | [for_runners/static/dygraphs/](https://github.com/jedie/django-for-runners/tree/master/for_runners/static/dygraphs) |\n| [chartjs.org](http://www.chartjs.org) | [Chart.js licensed under MIT](https://github.com/chartjs/Chart.js/blob/master/LICENSE.md) | [for_runners/static/chartjs/](https://github.com/jedie/django-for-runners/tree/master/for_runners/static/chartjs)   |\n\n### Precision of coordinates\n\nGPX files from Garmin (can) contain:\n\n\n* latitude with 29 decimal places\n* longitude with 28 decimal places\n* elevation with 19 decimal places\n\nThe route on OpenStreetMap does not look more detailed, with more than 5 decimal places.\n\nSee also: [https://wiki.openstreetmap.org/wiki/Precision_of_coordinates](https://wiki.openstreetmap.org/wiki/Precision_of_coordinates)\n\n\n## Make new release\n\nWe use [cli-base-utilities](https://github.com/jedie/cli-base-utilities#generate-project-history-base-on-git-commitstags) to generate the history in this README.\n\n\nTo make a new release, do this:\n\n* Increase your project version number\n* Run tests to update the README\n* commit the changes\n* Create release\n\n\n## Django compatibility\n\n| django-for-runners | django version | python              |\n|--------------------|----------------|---------------------|\n| >=v0.16.0          | 4.1            | 3.9, 3.10, 3.11     |\n| >=v0.15.0          | 3.2, 4.0, 4.1  | 3.7, 3.8, 3.9, 3.10 |\n| >=v0.14.0          | 3.2            | 3.7, 3.8, 3.9, 3.10 |\n| >=v0.12.0          | 2.2            | 3.7, 3.8, 3.9, 3.10 |\n| >=v0.11.0          | 2.2            | 3.7, 3.8, 3.9       |\n| >=v0.7.1           | 2.1            | 3.5, 3.6, 3.7       |\n| v0.5.x             | 2.0            | 3.5, 3.6, 3.7       |\n\n(See also combinations in [tox settings in pyproject.toml](https://github.com/jedie/django-for-runners/blob/main/pyproject.toml) and [github actions](https://github.com/jedie/django-for-runners/blob/main/.github/workflows/tests.yml))\n\n\n## Backwards-incompatible changes\n\n\n### v0.16.0\n\nWe switched from Poetry to pip-tools and https://github.com/jedie/manage_django_project\nJust remove the old Poetry venv and bootstrap by call the `./manage.py`, see above.\n\nWe also remove different Django Versions from test matrix and just use the current newest version.\nBecause this is a project and not really a reuse-able-app ;)\n\n\n\n\n## history\n\n\n[comment]: <> (\u2702\u2702\u2702 auto generated history start \u2702\u2702\u2702)\n\n* [v0.17.4](https://github.com/jedie/django-for-runners/compare/v0.17.3...v0.17.4)\n  * 2023-11-07 - audo generate README history\n  * 2023-11-07 - Update Requirements\n  * 2023-11-07 - Update UploadGpxFileForm\n  * 2023-04-05 - Update to manage-django-project v0.3.0rc0\n  * 2023-04-05 - Bugfixes:\n  * 2023-04-04 - Switch to \"managed-django-project\" template:\n* [v0.17.3](https://github.com/jedie/django-for-runners/compare/v0.17.2...v0.17.3)\n  * 2023-04-03 - Bugfix check if Postgres is used and migration not done\n* [v0.17.2](https://github.com/jedie/django-for-runners/compare/v0.17.1...v0.17.2)\n  * 2023-04-02 - release 0.17.2\n  * 2023-04-02 - Bugfix adding all template files\n* [v0.17.1](https://github.com/jedie/django-for-runners/compare/v0.17.0...v0.17.1)\n  * 2023-04-02 - Bugfix packaging and missing files\n  * 2023-04-02 - update link to https://github.com/kbr/autotask\n\n<details><summary>Expand older history entries ...</summary>\n\n* [v0.17.0](https://github.com/jedie/django-for-runners/compare/v0.16.0...v0.17.0)\n  * 2023-04-02 - Bugfix edit a `GpxModel` instance in admin with a large GPX track\n  * 2023-04-02 - Bugfix manage call and merge project test code\n  * 2023-04-02 - update ProjectSetupTestCase\n  * 2023-04-02 - fix code style\n  * 2023-04-02 - Update requirements\n  * 2023-04-02 - apply manages projects\n  * 2023-04-02 - -prod_settings\n  * 2023-04-02 - update project\n* [v0.16.0](https://github.com/jedie/django-for-runners/compare/v0.15.0...v0.16.0)\n  * 2023-03-13 - update requirements\n  * 2023-03-12 - code cleanup: Remove obsolete file\n  * 2023-03-12 - Code cleanup around init\n  * 2023-03-12 - Use https://github.com/jedie/manage_django_project\n  * 2023-03-11 - Update README.md\n  * 2023-01-27 - poetry -> piptools\n  * 2023-02-07 - manageprojects\n  * 2023-01-31 - use .venv, update req\n  * 2022-08-30 - check_editor_config\n  * 2022-08-30 - NEW: Attach files and images to \"Event Participations\n  * 2022-08-30 - Rename model field participation person to user\n* [v0.15.0](https://github.com/jedie/django-for-runners/compare/v0.14.0...v0.15.0)\n  * 2022-08-29 - bugfix publishing\n  * 2022-08-29 - update README\n  * 2022-08-29 - Use 'for_runners_project.settings.local' as default\n  * 2022-08-29 - Bugfix run_dev_server command\n  * 2022-08-23 - WIP: Replace README.creole with README.md\n  * 2022-08-17 - Bugfix test settings\n  * 2022-08-17 - add info\n  * 2022-08-17 - bugfix \"make update-rst-readme\"\n  * 2022-08-17 - Use AlwaysLoggedInAsSuperUserMiddleware from django-tools for local dev. server\n  * 2022-08-17 - Use django_tools.management.commands.run_testserver\n  * 2022-08-17 - update requirements\n  * 2022-08-17 - update poetry, too\n  * 2022-08-16 - Speedup CI\n  * 2022-08-16 - tox: run with multiple django versions\n* [v0.14.0](https://github.com/jedie/django-for-runners/compare/v0.13.0...v0.14.0)\n  * 2022-08-16 - +\"make lint\"\n  * 2022-08-16 - Update to Django 3.2\n  * 2022-08-16 - fix editorconfig\n  * 2022-08-16 - uses: codecov/codecov-action@v2\n  * 2022-07-06 - Bump lxml from 4.8.0 to 4.9.1\n  * 2022-06-02 - Bump pillow from 9.1.0 to 9.1.1\n  * 2022-04-16 - Bugfix backup\n* [v0.13.0](https://github.com/jedie/django-for-runners/compare/v0.12.1...v0.13.0)\n  * 2022-04-15 - v0.13.0rc1\n  * 2022-04-15 - Refresh all metaweather/OSM fixtures and use tooling from bx_django_utils\n  * 2022-04-15 - Fix Tests by addning ignored .json fixture files\n  * 2022-04-15 - fix coverage report\n  * 2022-04-15 - fix darker in github actions\n  * 2022-04-15 - set v0.13.0\n  * 2022-04-15 - fix styles/tests\n  * 2022-04-15 - Remove \"/development/\" and mode \"/src/\"\n  * 2022-04-15 - fix tox config\n  * 2022-04-15 - fix code style\n  * 2022-04-15 - use darker\n  * 2022-04-15 - Update Project setup\n  * 2022-04-15 - master -> main\n  * 2022-04-15 - Update requirements\n  * 2022-03-12 - Bump pillow from 9.0.0 to 9.0.1\n  * 2022-02-10 - Bump django from 2.2.26 to 2.2.27\n  * 2022-01-13 - Bump django from 2.2.25 to 2.2.26\n  * 2022-01-13 - Bump pillow from 8.4.0 to 9.0.0\n  * 2021-12-15 - Bump django from 2.2.24 to 2.2.25\n  * 2021-12-13 - Bump lxml from 4.6.4 to 4.6.5\n* [v0.12.1](https://github.com/jedie/django-for-runners/compare/v0.12.0...v0.12.1)\n  * 2021-11-22 - fix readme\n  * 2021-11-22 - Update pythonapp.yml\n  * 2021-11-22 - update requirements\n  * 2021-11-22 - cleanup gitignore\n  * 2021-11-22 - update github actions\n  * 2021-05-23 - Update Github CI config\n  * 2021-05-23 - Code cleanup\n  * 2021-05-23 - remove Travis CI config\n  * 2021-05-23 - Update requirements + code changes for bx_py_utils -> bx_django_utils\n* [v0.12.0](https://github.com/jedie/django-for-runners/compare/v0.11.0...v0.12.0)\n  * 2021-01-17 - prepare v0.12.0 release\n  * 2021-01-17 - update README\n  * 2021-01-17 - Link to django-for-runners_ynh in README\n  * 2021-01-17 - fix logo in README\n  * 2021-01-17 - update badge in README\n  * 2021-01-17 - fix GPX file upload test\n  * 2021-01-17 - update deps\n  * 2020-12-30 - update tests\n  * 2020-12-30 - update requirements\n  * 2020-12-30 - set version to 0.12.0.rc3\n  * 2020-12-30 - remove colorama and cleanup\n  * 2020-12-30 - update to latest bx_py_utils\n  * 2020-12-30 - install poetry via pip and update pip in venv, too\n  * 2020-11-25 - Fix code style\n  * 2020-11-25 - Add view to serve MEDIA files only for allowed user\n  * 2020-11-25 - print to stderr (so it's not in the dumpdata ;)\n  * 2020-11-25 - Add \"adminer\" container to dev run\n  * 2020-11-25 - add \"make dumpdata\"\n  * 2020-11-25 - fix project setup\n  * 2020-11-24 - fix \"make fix-code-style\"\n  * 2020-11-24 - fix coverage\n  * 2020-11-24 - Bugfix \"make pytest\" by using the test settings\n  * 2020-11-24 - check if cache is working in tests\n  * 2020-11-24 - use LocMemCache as default cache backend\n  * 2020-11-24 - geo reverse test: check if cache is filles\n  * 2020-11-24 - Add one missing request mock in tests\n  * 2020-11-24 - Activate \"pytest-randomly\"\n  * 2020-11-24 - Mock HTTP-Requests and django file storage in tests\n  * 2020-11-23 - migrate deployment setup from PyInventory\n  * 2020-11-23 - Fix test\n  * 2020-11-23 - Work a round for created static/media files in tests\n  * 2020-11-23 - Mock some nominatim.openstreetmap.org requests in tests\n  * 2020-11-14 - mock geo() request against \"nominatim.openstreetmap.org/reverse\"\n  * 2020-11-14 - Remove django-tools API change warnings\n  * 2020-11-14 - Don't use pytest-parallel on CI\n  * 2020-11-14 - add \"pytest-parallel\"\n  * 2020-11-14 - try to fix github actions\n  * 2020-11-14 - try optimize github action?\n  * 2020-11-14 - fix tox selenium tests by \"passenv = *\"\n  * 2020-11-14 - fix setup\n  * 2020-11-14 - WIP: fix docker setup\n  * 2020-11-14 - add github actions\n  * 2020-11-14 - set versions number to 0.12.0.rc1\n  * 2020-11-14 - Add deployment stuff\n  * 2020-11-14 - WIP: Update project setup\n  * 2020-11-14 - add manage files\n  * 2020-11-14 - update Makefile\n  * 2020-11-14 - WIP: update django project\n  * 2020-11-14 - remove git_sync.sh\n  * 2020-11-14 - move to /src/\n  * 2020-11-14 - +dev_scripts/fill_translations.py\n  * 2020-11-14 - update project meta files\n* [v0.11.0](https://github.com/jedie/django-for-runners/compare/v0.10.1...v0.11.0)\n  * 2020-07-04 - Update README\n  * 2020-07-04 - move download scripts into /dev_scripts/\n  * 2020-07-04 - fix code styles\n  * 2020-07-04 - add .flake8 config file\n  * 2020-07-04 - Update requirements\n  * 2020-07-04 - Add \"make update\"\n  * 2020-06-09 - apply pyupgrade\n  * 2020-06-09 - +pyupgrade\n  * 2020-06-09 - apply autopep8\n  * 2020-06-09 - setup autopep8 in pyproject.toml\n  * 2020-06-09 - Apply isort\n  * 2020-06-09 - add isort config file\n  * 2020-06-09 - apply flynt\n  * 2020-06-09 - Fix SVG test by compare it via parsed DOM-Tree ;)\n  * 2020-06-06 - remove double elements in short-address\n  * 2020-06-06 - disable pytest \"randomly\" plugin by default\n  * 2020-06-06 - remove obsolete \"update\" cli command\n  * 2020-06-06 - deactivate test TODO: Update it\n  * 2020-06-06 - remove obsolete test\n  * 2020-06-06 - fix for_runners/tests/test_svg.py\n  * 2020-06-06 - update doctest in geo.py and add logging output\n  * 2020-06-06 - Use poetry and a make file\n  * 2020-06-09 - Update base.txt\n  * 2020-06-06 - update gunicorn server\n  * 2020-06-06 - Bugfix 'fill_basedata' manage command\n  * 2019-08-25 - WIP: update tests\n  * 2019-08-25 - Add a hint on UnicodeEncodeError in own manage commands\n  * 2019-08-25 - refactor gpx import code and tests\n  * 2019-08-25 - add link to: https://github.com/rsjrny/Garmin-Connect-Export\n  * 2019-08-25 - remove link to gpsies.com\n* [v0.10.1](https://github.com/jedie/django-for-runners/compare/v0.10.0...v0.10.1)\n  * 2019-08-09 - Update .travis.yml\n  * 2019-08-09 - list_display_links = (\"event_name\",)\n  * 2019-06-26 - Add start date and costs to \"Event Participation\" table\n* [v0.10.0](https://github.com/jedie/django-for-runners/compare/v0.9.0...v0.10.0)\n  * 2019-06-26 - update README\n  * 2019-04-08 - tweak print view\n  * 2019-04-08 - generate missing svg files\n  * 2019-04-08 - Bugfix generate_svg\n  * 2019-04-08 - NEW: print mini\n  * 2019-04-03 - fixup! fix test\n  * 2019-04-03 - only code cleanup\n  * 2019-04-03 - add date filter on gpx tracks\n  * 2019-04-03 - fix test\n  * 2019-04-03 - Accept optional server bind address\n  * 2019-04-03 - pip for python 3 is needed for boot\n* [v0.9.0](https://github.com/jedie/django-for-runners/compare/v0.8.1...v0.9.0)\n  * 2019-04-02 - fixup! skip after_install_callback() on \"publish\"\n  * 2019-04-02 - only code formatting\n  * 2019-04-02 - skip after_install_callback() on \"publish\"\n  * 2019-04-02 - WIP: fix tests on python 3.5\n  * 2019-04-02 - refactor SVG and GPX files\n  * 2019-04-02 - update tests\n  * 2019-04-02 - use cutted b32encode sha512 hash\n  * 2019-04-02 - update tests for \"add\" -> \"upload\" redirect\n  * 2019-04-02 - USE_TZ = True\n  * 2019-04-02 - \"run-gunicorn\" -> \"run-server\"\n  * 2019-04-02 - redirect the defaul add view to upload form view\n  * 2019-04-02 - Bugfix: Ensure that there are no more than 2 decimal places\n  * 2019-04-01 - use django_tools.file_storage.file_system_storage.OverwriteFileSystemStorage\n  * 2019-04-01 - use colorlog\n  * 2019-04-01 - use django_tools.exception_plus\n  * 2019-04-01 - call self.full_clean() in save()\n  * 2019-04-01 - bugfix \"bin/for_runners update\"\n  * 2019-03-21 - WIP\n  * 2019-03-21 - +** NEW: export GPX Data via {{{django-import-export}}}\n  * 2019-03-21 - chmod +x\n  * 2019-03-21 - just run black code formatting\n  * 2019-03-21 - +run_black.sh\n  * 2019-01-31 - fixup! update tests\n  * 2019-01-31 - +test \"for_runers update\" command\n  * 2019-01-31 - fix --version and test ;)\n  * 2019-01-31 - print(\"Start up...\")\n  * 2019-01-31 - hack: use \"run-gunicorn\" as default action\n  * 2019-01-31 - NEW: Update installation with: {{{for_runners update}}}\n  * 2018-12-17 - remove admin action \"export as json\"\n  * 2018-12-17 - cleanup export stuff\n  * 2018-12-17 - create normal and dev.server starter\n  * 2018-12-11 - nicer export\n  * 2018-12-11 - remove debug prints\n  * 2018-12-11 - +Andreas Hudzieczek\n  * 2018-12-11 - use gunicorn as default\n  * 2018-12-11 - +gunicorn\n  * 2018-12-11 - WIP: django-import-export\n  * 2018-11-18 - only code style\n  * 2018-11-18 - add gunicorn as requirements\n  * 2018-11-18 - supported running gunicorn server\n  * 2018-11-18 - README\n  * 2018-11-18 - finish backup/export\n  * 2018-11-18 - WIP: export .csv files on backup\n  * 2018-11-18 - +for_runners_project\n  * 2018-11-18 - update click to v7.0\n  * 2018-11-17 - WIP: Backup/export via cli: \"$ for_runners backup\"\n  * 2018-11-17 - move virtualenv path helper\n  * 2018-11-17 - refactor call manage command\n  * 2018-11-17 - DjangoForRunnersEnv -> Django-ForRunners\n  * 2018-11-17 - regenerate all SVG files by: \"$ for_runners recreate_svg\"\n  * 2018-11-17 - remove \" && bash -i\" from desktop file\n  * 2018-11-17 - +start by hand\n  * 2018-09-16 - setup event admin change list\n  * 2018-09-16 - Bugfix: Open browser only one time\n  * 2018-09-15 - Create xdg-open desktop starter under linux\n  * 2018-09-12 - +Windows\n  * 2018-09-12 - Patches for windows usage\n  * 2018-09-12 - Work-a-round for windows\n  * 2018-09-12 - Create boot_django_for_runners.cmd\n  * 2018-09-09 - add icon link in html head\n  * 2018-09-09 - Update README.creole\n  * 2018-09-09 - Add logo as 128x128 png\n  * 2018-09-09 - Add logo as SVG\n  * 2018-09-09 - fix tests for python 3.5\n  * 2018-09-07 - update README\n  * 2018-09-07 - refactory startup and rename \"for_runners_test_project\" -> \"for_runners_project\"\n* [v0.8.1](https://github.com/jedie/django-for-runners/compare/v0.8.0...v0.8.1)\n  * 2018-09-03 - v0.8.1\n  * 2018-09-03 - bin/run_dev_server -> bin/for_runners\n* [v0.8.0](https://github.com/jedie/django-for-runners/compare/v0.7.1...v0.8.0)\n  * 2018-09-03 - v0.8 and README\n  * 2018-09-03 - use pip cache from travis\n  * 2018-09-03 - https://github.com/travis-ci/travis-ci/issues/8589#issuecomment-372947199\n  * 2018-09-03 - +test boot script\n  * 2018-09-03 - WIP: boot/setup/usage\n  * 2018-09-03 - Update README.creole\n  * 2018-09-03 - auto call 'fill_basedata'\n  * 2018-09-03 - nicer error if django can't import\n  * 2018-09-02 - Add links from event participation to GPX tracks\n  * 2018-09-02 - GpxModel.participation ForeignKey->OneToOneField\n* [v0.7.1](https://github.com/jedie/django-for-runners/compare/v0.7.0...v0.7.1)\n  * 2018-09-02 - fix tests test with django 2.1\n  * 2018-09-02 - fixup! fix staff user tests\n  * 2018-09-02 - fix staff user tests\n  * 2018-09-02 - Update README.creole\n* [v0.7.0](https://github.com/jedie/django-for-runners/compare/v0.6.0...v0.7.0)\n  * 2018-09-02 - update readme\n  * 2018-09-02 - +AUTHORS\n  * 2018-09-02 - fix #2\n  * 2018-08-31 - move manipluation of list_display and list_filter\n  * 2018-08-28 - update tests\n  * 2018-08-28 - Add TODO\n  * 2018-08-28 - handle ZeroDivisionError calculating pace\n  * 2018-08-28 - redirect to change view after upload\n  * 2018-08-21 - catch NotImplementedError and NotSupportedError for missing sqlite distinct feature\n  * 2018-08-21 - install pytest version compatible with pytest-django\n  * 2018-08-21 - update tests: OSM data changed\n  * 2018-08-21 - WIP: Add links from gpx tracks to other admin change view\n  * 2018-08-21 - Add username to headline\n  * 2018-08-21 - display user names only if there are tracks from more than one user\n  * 2018-08-21 - handle invalid GPX data while importing\n  * 2018-08-21 - Replace \"Change GPX Track\" headline with more informations\n  * 2018-08-21 - refactor route/graphs creation and style\n  * 2018-08-21 - Bugfix admin filter \"By has event\": Update since model refactoring\n  * 2018-08-21 - Bugfix admin filter \"By has net duration\": Update since model refactoring\n  * 2018-07-31 - Update README.creole\n  * 2018-07-31 - update screenshot\n  * 2018-07-31 - refactor duration field\n  * 2018-07-31 - for_runners/static/{dygraph => dygraphs}/\n  * 2018-07-31 - cleanup\n  * 2018-07-24 - replace gxp track chart.js with dygraph\n  * 2018-07-19 - add link to all screenshots\n  * 2018-07-19 - +for-runners v0.6.0 2018-07-19 Event Costs.png\n* [v0.6.0](https://github.com/jedie/django-for-runners/compare/v0.5.0...v0.6.0)\n  * 2018-07-19 - release v0.6\n  * 2018-07-19 - tune event statistics\n  * 2018-07-19 - Add some basic event statistics\n  * 2018-07-19 - help text\n  * 2018-07-19 - +CostModel\n  * 2018-07-19 - split admin.py\n  * 2018-07-19 - bugfix change event view\n  * 2018-07-12 - WIP: event participation\n* [v0.5.0](https://github.com/jedie/django-for-runners/compare/v0.4.0...v0.5.0)\n  * 2018-07-04 - ignore pypy3 tests, because of \"decimal.InvalidOperation\"\n  * 2018-07-04 - install via pypi\n  * 2018-07-04 - +DocString\n  * 2018-07-04 - +docutils\n  * 2018-07-04 - update README\n  * 2018-07-04 - WIP: fix travis\n  * 2018-07-04 - update travis config\n  * 2018-07-04 - update tox.ini\n  * 2018-07-04 - recreate migrations\n  * 2018-07-04 - fix length and duration in chartjs\n  * 2018-07-04 - update to change OSM data\n  * 2018-07-04 - code cleanup\n  * 2018-07-04 - add a AppConfig\n  * 2018-07-04 - remove autotask\n  * 2018-07-04 - FIXME: https://bitbucket.org/kbr/autotask/pull-requests/3/\n  * 2018-07-04 - Add http://editorconfig.org config file with isort config\n  * 2018-07-04 - django-tools>=0.40.2\n  * 2018-07-03 - remove old migrations\n  * 2018-07-03 - update squashed migrations\n  * 2018-07-03 - squash migrations\n  * 2018-07-03 - store gpx in TextField and update svg save\n  * 2018-07-03 - update tests for django 2.0\n  * 2018-07-03 - update test references for gpxpy v1.3.2 see:\n  * 2018-07-03 - WIP\n  * 2018-07-02 - Add 'has GPX tracks' filter to Event\n  * 2018-06-28 - change event model: \"start_time\" -> \"start_date\"\n  * 2018-06-28 - Add \"has event\" filter\n  * 2018-06-28 - remove double entry\n  * 2018-06-28 - nicer length/duration in change list\n  * 2018-06-28 - Add YAPF config file\n  * 2018-06-28 - add change list filter 'has net duration'\n  * 2018-06-28 - +!/.travis.yml\n  * 2018-06-28 - $ ./manage.py fill_basedata\n  * 2018-06-28 - split models.py\n  * 2018-06-28 - Add 'net duration' field, for the officially measured time and use it for calculations if available.\n  * 2018-06-28 - Don't generate SVG if it's already done in the past.\n  * 2018-06-28 - Don't request address if start/finish address already set\n  * 2018-06-28 - bugfix human_duration() DocTests\n  * 2018-06-28 - change event number to positiv integer\n  * 2018-06-28 - make event links optional\n  * 2018-06-28 - bugfix \"GPX info\" table\n  * 2018-06-28 - DATA_UPLOAD_MAX_MEMORY_SIZE = 5000000\n  * 2018-06-27 - Add \"ideal distances\"\n  * 2018-06-27 - bugfix get weather\n  * 2018-06-27 - Bugfix change view: remove obsolete code\n  * 2018-06-27 - remove obsolete code\n  * 2018-06-27 - speedup by deactivating some django debug toolbar panels\n* [v0.4.0](https://github.com/jedie/django-for-runners/compare/v0.3.0...v0.4.0)\n  * 2018-06-26 - update screenshots + version: v0.4.0\n  * 2018-06-26 - remove Streetmap image generated via geotiler\n  * 2018-06-26 - enable bezier curves\n  * 2018-06-26 - Nicer track map with kilometer points\n  * 2018-06-26 - change Statistics links in filter section\n  * 2018-06-26 - code style\n  * 2018-06-26 - Add 'creator' to every track and use it as changelist filter\n  * 2018-06-26 - NEW: Display GPX metadata\n  * 2018-06-26 - Speedup by using a cache for gpxpy instances\n  * 2018-06-26 - Add links to github/PyPi in admin footer\n  * 2018-06-26 - NEW: \"GPX Info\"\n  * 2018-06-26 - Bugfix upload GPX files: set user\n  * 2018-06-26 - Skip weather if date is None\n  * 2018-06-25 - combine track filters with statistic views\n  * 2018-06-25 - display min/avg/max pace in distance statistics\n* [v0.3.0](https://github.com/jedie/django-for-runners/compare/v0.2.0...v0.3.0)\n  * 2018-06-23 - fixup! README\n  * 2018-06-23 - README\n  * 2018-06-23 - Update tests for change admin title\n  * 2018-06-23 - better info on import with existing tracks\n  * 2018-06-23 - +for-runners v0.3.0 2018-6-23 Distance Statistics.png\n  * 2018-06-23 - fixup! handle if no weather data is available\n  * 2018-06-23 - expand user path\n  * 2018-06-23 - code style\n  * 2018-06-23 - handle if no weather data is available\n  * 2018-06-23 - add distance statistics\n  * 2018-06-23 - Change django title/branding\n  * 2018-06-23 - add weather information from metaweather.com\n  * 2018-06-23 - description='Store your GPX tracks of your running (or other sports activity) in django.'\n* [v0.2.0](https://github.com/jedie/django-for-runners/compare/v0.1.1...v0.2.0)\n  * 2018-06-21 - Update README.creole\n  * 2018-06-21 - Squashed commit of the following:\n  * 2018-06-17 - Add static files (Charts.JS + Leaflet)\n* [v0.1.1](https://github.com/jedie/django-for-runners/compare/v0.1.0...v0.1.1)\n  * 2018-06-15 - release v0.1.1\n  * 2018-06-15 - update screnshots\n  * 2018-06-15 - add tests for gpx2svg - TODO: Use correct WGS 84 calculations\n  * 2018-06-15 - Don't use {{ forloop.counter }} for kilometers in leaflet map\n  * 2018-06-15 - Bugfix short_address if town is == \"state\"\n  * 2018-06-15 - +list_filter: tracked_by\n  * 2018-06-15 - add tests for create GPX in admin\n  * 2018-06-15 - bugfix if GPX extension doesn't exists\n  * 2018-06-15 - Bugfix creating GPX entry in admin\n* [v0.1.0](https://github.com/jedie/django-for-runners/compare/v0.0.4...v0.1.0)\n  * 2018-06-15 - move svg to collapse section\n  * 2018-06-15 - cleanup popup\n  * 2018-06-14 - typo\n  * 2018-06-14 - Display every km on map\n  * 2018-06-14 - Render interactive OpenStreetMap track map with Leaflet JS\n  * 2018-06-14 - +== run tests\n  * 2018-06-14 - setup selenium tests\n  * 2018-06-13 - Don't check content type\n  * 2018-06-13 - start/finish links to openstreetmap\n  * 2018-06-12 - use a better filename for the map\n  * 2018-06-12 - code cleanup\n  * 2018-06-12 - nicer admin change list view\n  * 2018-06-12 - sort length, duration & pace in admin\n  * 2018-06-12 - Add DocTests\n  * 2018-06-12 - print -> logging\n  * 2018-06-12 - Display hours, too + DocTests\n* [v0.0.4](https://github.com/jedie/django-for-runners/compare/v0.0.3...v0.0.4)\n  * 2018-06-12 - Gpxity currently not used\n  * 2018-06-12 - +== credits ==\n  * 2018-06-12 - skip geotiler if SyntaxError while import, see also:\n  * 2018-06-12 - Update README.creole\n  * 2018-06-12 - Geotiler needs Python 3.6 or later\n  * 2018-06-12 - Better Links to events\n  * 2018-06-12 - TODO: Use UTC and handle time zone\n  * 2018-06-12 - activate MAP_DOWNLOAD by default\n  * 2018-06-12 - gpxpy #117 is implemented, but not release on PyPi, see:\n  * 2018-06-12 - GPX error handling + tests\n  * 2018-06-12 - run for_runners tests, too\n  * 2018-06-12 - typo\n* [v0.0.3](https://github.com/jedie/django-for-runners/compare/v0.0.2...v0.0.3)\n  * 2018-06-12 - Use autotask to generate map in background\n  * 2018-06-12 - create new figure for map\n  * 2018-06-05 - +import GPX files\n  * 2018-06-05 - +.gitignore\n  * 2018-06-05 - +== try-out\n  * 2018-06-05 - Use last TLS version\n  * 2018-06-02 - min/average/max heart rate\n  * 2018-06-02 - use gpxpy 'ns-namespace' branch to fix: https://github.com/tkrajina/gpxpy/issues/117\n  * 2018-06-02 - redirect to /admin/for_runners/gpxmodel/\n* [v0.0.2](https://github.com/jedie/django-for-runners/compare/v0.0.1...v0.0.2)\n  * 2018-05-31 - generate SVG from track\n  * 2018-05-31 - v0.0.2\n  * 2018-05-30 - +git_sync.sh\n  * 2018-05-30 - remove tests with django cms 3.4\n  * 2018-05-30 - code cleanup\n  * 2018-05-30 - update requirements\n  * 2018-05-30 - remove django-meta\n  * 2018-05-30 - remove unused templates\n  * 2018-05-30 - Update README.creole\n* [v0.0.1](https://github.com/jedie/django-for-runners/compare/6e05957...v0.0.1)\n  * 2018-05-30 - add first code version\n  * 2018-05-29 - Initial commit\n\n</details>\n\n\n[comment]: <> (\u2702\u2702\u2702 auto generated history end \u2702\u2702\u2702)\n\n\n## links\n\n| Homepage | [http://github.com/jedie/django-for-runners](http://github.com/jedie/django-for-runners)     |\n| PyPi     | [https://pypi.org/project/django-for-runners/](https://pypi.org/project/django-for-runners/) |\n\n### activity exporter\n\nIt's sometimes hard to find a working project for exporting activities.\nSo here tools that i use currently:\n\n\n* [Garmin-Connect-Export](https://github.com/rsjrny/Garmin-Connect-Export) from rsjrny\n\n### alternatives (OpenSource only)\n\n\n* [https://github.com/pytrainer/pytrainer](https://github.com/pytrainer/pytrainer) (Desktop Program)\n* [https://github.com/GoldenCheetah/GoldenCheetah/](https://github.com/GoldenCheetah/GoldenCheetah/) (Desktop Program)\n\nOnline tools:\n\n\n* [https://www.j-berkemeier.de/ShowGPX.html](https://www.j-berkemeier.de/ShowGPX.html) (de)\n\n## credits\n\nThe whole thing is based on many excellent projects. Especially the following:\n\n\n* [gpxpy](https://pypi.org/project/gpxpy/) GPX file parser\n* [Leaflet JS](https://leafletjs.com) A JS library for interactive maps used to render the track on [OpenStreetMap](https://openstreetmap.org/)\n* [dygraphs](http://dygraphs.com) open source JavaScript charting library\n* [Chart.js](https://www.chartjs.org) HTML5 Charts\n* [geopy](https://pypi.org/project/geopy/) Get geo location names of the GPX track start/end point\n* [matplotlib](https://pypi.org/project/matplotlib/) plotting 2D graphics\n* [autotask](https://pypi.org/project/autotask/) schedule background jobs\n* [svgwrite](https://pypi.org/project/svgwrite/) Generating SVG file\n\n## donation\n\n\n* [paypal.me/JensDiemer](https://www.paypal.me/JensDiemer)\n* [Flattr This!](https://flattr.com/submit/auto?uid=jedie&url=https%3A%2F%2Fgithub.com%2Fjedie%2Fdjango-for-runners%2F)\n* Send [Bitcoins](http://www.bitcoin.org/) to [1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F](https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F)\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Store your GPX tracks of your running (or other sports activity) in django.",
    "version": "0.17.4",
    "project_urls": {
        "Documentation": "https://github.com/jedie/django-for-runners",
        "Source": "https://github.com/jedie/django-for-runners"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fffbf267b71917006922cf6de285463b482d44e476b41b0738701d587f83ff74",
                "md5": "921cab16267b4d41064c7ae3214e45eb",
                "sha256": "ceecf3ed00e372cb012e1635fb6388675ecf92e2125c6782a4c41fd5b4c3d96a"
            },
            "downloads": -1,
            "filename": "django_for_runners-0.17.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "921cab16267b4d41064c7ae3214e45eb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.9",
            "size": 939277,
            "upload_time": "2023-11-07T18:46:13",
            "upload_time_iso_8601": "2023-11-07T18:46:13.056684Z",
            "url": "https://files.pythonhosted.org/packages/ff/fb/f267b71917006922cf6de285463b482d44e476b41b0738701d587f83ff74/django_for_runners-0.17.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "953faad671e467d6ee6ccedd074037a6ecd0a39f9c4ec1a95ef0d60ad8bc4df6",
                "md5": "f8104c8741b52e1af44e9c6c00edb807",
                "sha256": "fbf2498ddac8a18b241f8b05a1d03288984a11714009d1312cf17b48517f08de"
            },
            "downloads": -1,
            "filename": "django-for-runners-0.17.4.tar.gz",
            "has_sig": false,
            "md5_digest": "f8104c8741b52e1af44e9c6c00edb807",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.9",
            "size": 981281,
            "upload_time": "2023-11-07T18:46:16",
            "upload_time_iso_8601": "2023-11-07T18:46:16.962181Z",
            "url": "https://files.pythonhosted.org/packages/95/3f/aad671e467d6ee6ccedd074037a6ecd0a39f9c4ec1a95ef0d60ad8bc4df6/django-for-runners-0.17.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-07 18:46:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jedie",
    "github_project": "django-for-runners",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "django-for-runners"
}
        
Elapsed time: 0.14940s