Merge branch 'release-v0.7.9'

This commit is contained in:
Sam 2022-12-11 19:04:05 +01:00
commit 72ec562b6c
158 changed files with 2200 additions and 1885 deletions

View File

@ -1,5 +1,19 @@
# Change log
## Version 0.7.9 (2022/12/11)
### Features and enhancements
* [#280](https://github.com/SamR1/FitTrackee/issues/280) - New sport: Mountaineering
### Translations
* [PR#278](https://github.com/SamR1/FitTrackee/pull/278) - Translations update from Hosted Weblate (German, thanks to @qwerty287)
* [PR#282](https://github.com/SamR1/FitTrackee/pull/282) - Init italian translation files
**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/installation.html#upgrade))
## Version 0.7.8 (2022/11/30)
FitTrackee is now available in Dutch (thanks to @bjornclauw).

View File

@ -3,7 +3,7 @@
[![PyPI version](https://img.shields.io/pypi/v/fittrackee.svg)](https://pypi.org/project/fittrackee/)
[![Python Version](https://img.shields.io/badge/python-3.7+-brightgreen.svg)](https://python.org)
[![Flask Version](https://img.shields.io/badge/flask-2.1-brightgreen.svg)](http://flask.pocoo.org/)
[![Flask Version](https://img.shields.io/badge/flask-2.2-brightgreen.svg)](http://flask.pocoo.org/)
[![code style: black](https://img.shields.io/badge/code%20style-black-black)](https://github.com/psf/black)
[![type check: mypy](https://img.shields.io/badge/type%20check-mypy-blue)](http://mypy-lang.org/)
[![Vue Version](https://img.shields.io/badge/vue-3.2-brightgreen.svg)](https://v3.vuejs.org/)

View File

@ -1 +1 @@
0.7.8
0.7.9

View File

@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 6269186d3596b7516ce130c49b5a0a6b
config: b4432b1990857f41af30f27460fb619b
tags: 645f666f9bcd5a90fca523b33c5a78b7

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 KiB

After

Width:  |  Height:  |  Size: 567 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -1,5 +1,19 @@
# Change log
## Version 0.7.9 (2022/12/11)
### Features and enhancements
* [#280](https://github.com/SamR1/FitTrackee/issues/280) - New sport: Mountaineering
### Translations
* [PR#278](https://github.com/SamR1/FitTrackee/pull/278) - Translations update from Hosted Weblate (German, thanks to @qwerty287)
* [PR#282](https://github.com/SamR1/FitTrackee/pull/282) - Init italian translation files
**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/installation.html#upgrade))
## Version 0.7.8 (2022/11/30)
FitTrackee is now available in Dutch (thanks to @bjornclauw).

View File

@ -11,13 +11,14 @@ With the default configuration, `Open Street Map <https://www.openstreetmap.org>
Workouts
^^^^^^^^
- 13 sports are supported:
- 14 sports are supported:
- Cycling (Sport)
- Cycling (Transport)
- Cycling (Virtual) (*new in 0.7.3*)
- Hiking
- Mountain Biking
- Mountain Biking (Electric) (*new in 0.5.0*)
- Mountaineering (*new in 0.7.9*)
- Rowing (*new in 0.5.0*)
- Running
- Skiing (Alpine) (*new in 0.5.0*)
@ -27,6 +28,7 @@ Workouts
- Walking
- (*new in 0.5.0*) Stopped speed threshold used by `gpxpy <https://github.com/tkrajina/gpxpy>`_ is not the default one for the following sports (0.1 km/h instead of 1 km/h):
- Hiking
- Mountaineering
- Skiing (Cross Country)
- Snowshoes
- Trail

View File

@ -480,13 +480,13 @@ Production environment
.. warning::
| Note that FitTrackee is under heavy development, some features may be unstable.
- Download the last release (for now, it is the release v0.7.8):
- Download the last release (for now, it is the release v0.7.9):
.. code:: bash
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.8.tar.gz
$ tar -xzf v0.7.8.tar.gz
$ mv FitTrackee-0.7.8 FitTrackee
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.9.tar.gz
$ tar -xzf v0.7.9.tar.gz
$ mv FitTrackee-0.7.9 FitTrackee
$ cd FitTrackee
- Create **.env** from example and update it
@ -606,13 +606,13 @@ Prod environment
- Change to the directory where FitTrackee directory is located
- Download the last release (for now, it is the release v0.7.8) and overwrite existing files:
- Download the last release (for now, it is the release v0.7.9) and overwrite existing files:
.. code:: bash
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.8.tar.gz
$ tar -xzf v0.7.8.tar.gz
$ cp -R FitTrackee-0.7.8/* FitTrackee/
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.9.tar.gz
$ tar -xzf v0.7.9.tar.gz
$ cp -R FitTrackee-0.7.9/* FitTrackee/
$ cd FitTrackee
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).

View File

@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '0.7.8',
VERSION: '0.7.9',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Authentication &#8212; FitTrackee 0.7.8
<title>Authentication &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -1239,7 +1239,7 @@ for other reasons.</p></li>
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Configuration &#8212; FitTrackee 0.7.8
<title>Configuration &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -155,7 +155,7 @@
<span class="w"> </span><span class="nt">&quot;max_users&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;max_zip_file_size&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;map_attribution&quot;</span><span class="p">:</span><span class="w"> </span><span class="nt">&quot;&amp;copy; &lt;a href=http://www.openstreetmap.org/copyright&gt;OpenStreetMap&lt;/a&gt; contributors&quot;</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;version&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0.7.8&quot;</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;version&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0.7.9&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;status&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;success&quot;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
@ -196,7 +196,7 @@
<span class="w"> </span><span class="nt">&quot;max_users&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;max_zip_file_size&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">10485760</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;map_attribution&quot;</span><span class="p">:</span><span class="w"> </span><span class="nt">&quot;&amp;copy; &lt;a href=http://www.openstreetmap.org/copyright&gt;OpenStreetMap&lt;/a&gt; contributors&quot;</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;version&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0.7.8&quot;</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;version&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;0.7.9&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="nt">&quot;status&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;success&quot;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
@ -279,7 +279,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>API documentation &#8212; FitTrackee 0.7.8
<title>API documentation &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -160,7 +160,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>OAuth2 &#8212; FitTrackee 0.7.8
<title>OAuth2 &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -694,7 +694,7 @@ are supported by FitTrackee)</p></li>
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Records &#8212; FitTrackee 0.7.8
<title>Records &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -262,7 +262,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Sports &#8212; FitTrackee 0.7.8
<title>Sports &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -492,7 +492,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Statistics &#8212; FitTrackee 0.7.8
<title>Statistics &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -419,7 +419,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Users &#8212; FitTrackee 0.7.8
<title>Users &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -663,7 +663,7 @@ one admin.</p>
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Workouts &#8212; FitTrackee 0.7.8
<title>Workouts &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -1179,7 +1179,7 @@ Double quotes in notes must be escaped.</p></li>
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Third-party applications &#8212; FitTrackee 0.7.8
<title>Third-party applications &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -259,7 +259,7 @@ It is recommended to use PKCE to provide a better security.</p>
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Command line interface &#8212; FitTrackee 0.7.8
<title>Command line interface &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -288,7 +288,7 @@ Commands:
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Features &#8212; FitTrackee 0.7.8
<title>Features &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -156,13 +156,14 @@
<h2>Workouts<a class="headerlink" href="#workouts" title="Permalink to this heading"></a></h2>
<ul class="simple">
<li><dl class="simple">
<dt>13 sports are supported:</dt><dd><ul>
<dt>14 sports are supported:</dt><dd><ul>
<li><p>Cycling (Sport)</p></li>
<li><p>Cycling (Transport)</p></li>
<li><p>Cycling (Virtual) (<em>new in 0.7.3</em>)</p></li>
<li><p>Hiking</p></li>
<li><p>Mountain Biking</p></li>
<li><p>Mountain Biking (Electric) (<em>new in 0.5.0</em>)</p></li>
<li><p>Mountaineering (<em>new in 0.7.9</em>)</p></li>
<li><p>Rowing (<em>new in 0.5.0</em>)</p></li>
<li><p>Running</p></li>
<li><p>Skiing (Alpine) (<em>new in 0.5.0</em>)</p></li>
@ -177,6 +178,7 @@
<li><dl class="simple">
<dt>(<em>new in 0.5.0</em>) Stopped speed threshold used by <a class="reference external" href="https://github.com/tkrajina/gpxpy">gpxpy</a> is not the default one for the following sports (0.1 km/h instead of 1 km/h):</dt><dd><ul>
<li><p>Hiking</p></li>
<li><p>Mountaineering</p></li>
<li><p>Skiing (Cross Country)</p></li>
<li><p>Snowshoes</p></li>
<li><p>Trail</p></li>
@ -392,7 +394,7 @@ A user with an inactive account cannot log in. (<em>new in 0.6.0</em>)</p></li>
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -4,7 +4,7 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Index &#8212; FitTrackee 0.7.8
<title>Index &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
@ -40,7 +40,7 @@
</button>
<a class="navbar-brand" href="index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -188,7 +188,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -4,7 +4,7 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>HTTP Routing Table &#8212; FitTrackee 0.7.8
<title>HTTP Routing Table &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
@ -47,7 +47,7 @@
</button>
<a class="navbar-brand" href="index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -410,7 +410,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>FitTrackee &#8212; FitTrackee 0.7.8
<title>FitTrackee &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
@ -42,7 +42,7 @@
</button>
<a class="navbar-brand" href="#">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -180,7 +180,7 @@ Map</a>.</div>
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Installation &#8212; FitTrackee 0.7.8
<title>Installation &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -795,11 +795,11 @@ $ make install-db
</div>
</div>
<ul class="simple">
<li><p>Download the last release (for now, it is the release v0.7.8):</p></li>
<li><p>Download the last release (for now, it is the release v0.7.9):</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.8.tar.gz
$ tar -xzf v0.7.8.tar.gz
$ mv FitTrackee-0.7.8 FitTrackee
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.9.tar.gz
$ tar -xzf v0.7.9.tar.gz
$ mv FitTrackee-0.7.9 FitTrackee
$ <span class="nb">cd</span> FitTrackee
</pre></div>
</div>
@ -919,11 +919,11 @@ $ <span class="nb">source</span> .env
<ul class="simple">
<li><p>Stop the application</p></li>
<li><p>Change to the directory where FitTrackee directory is located</p></li>
<li><p>Download the last release (for now, it is the release v0.7.8) and overwrite existing files:</p></li>
<li><p>Download the last release (for now, it is the release v0.7.9) and overwrite existing files:</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.8.tar.gz
$ tar -xzf v0.7.8.tar.gz
$ cp -R FitTrackee-0.7.8/* FitTrackee/
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.9.tar.gz
$ tar -xzf v0.7.9.tar.gz
$ cp -R FitTrackee-0.7.9/* FitTrackee/
$ <span class="nb">cd</span> FitTrackee
</pre></div>
</div>
@ -1182,7 +1182,7 @@ $ make docker-test-python <span class="c1"># run unit tests on API</span>
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

Binary file not shown.

View File

@ -4,7 +4,7 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Search &#8212; FitTrackee 0.7.8
<title>Search &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css" />
@ -47,7 +47,7 @@
</button>
<a class="navbar-brand" href="index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -154,7 +154,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

File diff suppressed because one or more lines are too long

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Administrator &#8212; FitTrackee 0.7.8
<title>Administrator &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -174,7 +174,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Troubleshooting &#8212; FitTrackee 0.7.8
<title>Troubleshooting &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -157,7 +157,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

View File

@ -5,7 +5,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>User &#8212; FitTrackee 0.7.8
<title>User &#8212; FitTrackee 0.7.9
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/bootstrap-sphinx.css" />
@ -43,7 +43,7 @@
</button>
<a class="navbar-brand" href="../index.html">
FitTrackee</a>
<span class="navbar-text navbar-version pull-left"><b>0.7.8
<span class="navbar-text navbar-version pull-left"><b>0.7.9
</b></span>
</div>
@ -148,7 +148,7 @@
</p>
<p>
&copy; Copyright 2018 - 2022, SamR1 <a rel="me" href="https://fosstodon.org/@FitTrackee"><i class="fa fa-mastodon" aria-hidden="true"></i></a>.
Last updated on Nov 30, 2022.<br/>
Last updated on Dec 11, 2022.<br/>
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.3.0.<br/>
</p>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 KiB

After

Width:  |  Height:  |  Size: 567 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -11,13 +11,14 @@ With the default configuration, `Open Street Map <https://www.openstreetmap.org>
Workouts
^^^^^^^^
- 13 sports are supported:
- 14 sports are supported:
- Cycling (Sport)
- Cycling (Transport)
- Cycling (Virtual) (*new in 0.7.3*)
- Hiking
- Mountain Biking
- Mountain Biking (Electric) (*new in 0.5.0*)
- Mountaineering (*new in 0.7.9*)
- Rowing (*new in 0.5.0*)
- Running
- Skiing (Alpine) (*new in 0.5.0*)
@ -27,6 +28,7 @@ Workouts
- Walking
- (*new in 0.5.0*) Stopped speed threshold used by `gpxpy <https://github.com/tkrajina/gpxpy>`_ is not the default one for the following sports (0.1 km/h instead of 1 km/h):
- Hiking
- Mountaineering
- Skiing (Cross Country)
- Snowshoes
- Trail

View File

@ -480,13 +480,13 @@ Production environment
.. warning::
| Note that FitTrackee is under heavy development, some features may be unstable.
- Download the last release (for now, it is the release v0.7.8):
- Download the last release (for now, it is the release v0.7.9):
.. code:: bash
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.8.tar.gz
$ tar -xzf v0.7.8.tar.gz
$ mv FitTrackee-0.7.8 FitTrackee
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.9.tar.gz
$ tar -xzf v0.7.9.tar.gz
$ mv FitTrackee-0.7.9 FitTrackee
$ cd FitTrackee
- Create **.env** from example and update it
@ -606,13 +606,13 @@ Prod environment
- Change to the directory where FitTrackee directory is located
- Download the last release (for now, it is the release v0.7.8) and overwrite existing files:
- Download the last release (for now, it is the release v0.7.9) and overwrite existing files:
.. code:: bash
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.8.tar.gz
$ tar -xzf v0.7.8.tar.gz
$ cp -R FitTrackee-0.7.8/* FitTrackee/
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.9.tar.gz
$ tar -xzf v0.7.9.tar.gz
$ cp -R FitTrackee-0.7.9/* FitTrackee/
$ cd FitTrackee
- Update **.env** if needed (see `Environment variables <installation.html#environment-variables>`__).

View File

@ -25,7 +25,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix
from fittrackee.emails.email import EmailService
from fittrackee.request import CustomRequest
VERSION = __version__ = '0.7.8'
VERSION = __version__ = '0.7.9'
REDIS_URL = os.getenv('REDIS_URL', 'redis://')
API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split(
','

View File

@ -48,7 +48,7 @@ def get_application_config() -> Union[Dict, HttpResponse]:
"max_users": 0,
"max_zip_file_size": 10485760,
"map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
"version": "0.7.8"
"version": "0.7.9"
},
"status": "success"
}
@ -100,7 +100,7 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]:
"max_users": 10,
"max_zip_file_size": 10485760,
"map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors"
"version": "0.7.8"
"version": "0.7.9"
},
"status": "success"
}

View File

@ -62,6 +62,7 @@ class BaseConfig:
'de',
# 'nb', # disabled for now
'nl',
# 'it', # disabled for now
]
OAUTH2_TOKEN_EXPIRES_IN = {
'authorization_code': 864000, # 10 days

View File

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/static/css/fork-awesome.min.css"/><link rel="stylesheet" href="/static/css/leaflet.css"/><title>FitTrackee</title><script defer="defer" src="/static/js/chunk-vendors.0004541e.js"></script><script defer="defer" src="/static/js/app.8d89be73.js"></script><link href="/static/css/app.7cddaab1.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="fittrackee_client"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/static/css/fork-awesome.min.css"/><link rel="stylesheet" href="/static/css/leaflet.css"/><title>FitTrackee</title><script defer="defer" src="/static/js/chunk-vendors.b65fdc2f.js"></script><script defer="defer" src="/static/js/app.f6f0ca0c.js"></script><link href="/static/css/app.7cddaab1.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="fittrackee_client"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[328],{6e3:function(t,e,i){i.r(e),i.d(e,{default:function(){return _}});var a=i(6252),n=i(2262),s=i(8273),c=i(5801),r=i(9917);const S=t=>((0,a.dD)("data-v-64629971"),t=t(),(0,a.Cn)(),t),l={id:"admin",class:"view"},p={key:0,class:"container"},u=S((()=>(0,a._)("div",{id:"bottom"},null,-1)));var T=(0,a.aZ)({__name:"AdminView",setup(t){const e=(0,r.o)(),i=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_CONFIG])),S=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_STATS])),T=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.IS_ADMIN])),d=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.USER_LOADING]));return(0,a.wF)((()=>e.dispatch(c.SY.ACTIONS.GET_APPLICATION_STATS))),(t,e)=>{const c=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",l,[(0,n.SU)(d)?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",p,[(0,n.SU)(T)?((0,a.wg)(),(0,a.j4)(c,{key:0,appConfig:(0,n.SU)(i),appStatistics:(0,n.SU)(S)},null,8,["appConfig","appStatistics"])):((0,a.wg)(),(0,a.j4)(s.Z,{key:1})),u]))])}}}),d=i(3744);const o=(0,d.Z)(T,[["__scopeId","data-v-64629971"]]);var _=o}}]);
//# sourceMappingURL=admin.c4231dfb.js.map
//# sourceMappingURL=admin.4d1d1ecc.js.map

View File

@ -1 +1 @@
{"version":3,"file":"static/js/admin.c4231dfb.js","mappings":"mOAGA,MAAMA,EAAeC,KAAMC,EAAAA,EAAAA,IAAa,mBAAmBD,EAAEA,KAAIE,EAAAA,EAAAA,MAAcF,GACzEG,EAAa,CACjBC,GAAI,QACJC,MAAO,QAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,aAEHG,EAA2BT,GAAa,KAAmBU,EAAAA,EAAAA,GAAoB,MAAO,CAAEL,GAAI,UAAY,MAAO,KAUrH,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAEN,MAAMC,GAAQC,EAAAA,EAAAA,KAERC,GAAqCC,EAAAA,EAAAA,KACzC,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAA6CH,EAAAA,EAAAA,KACjD,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,aAEhBE,GAAuCJ,EAAAA,EAAAA,KAC3C,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,YAEhBC,GAAoCN,EAAAA,EAAAA,KACxC,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,gBAKxB,OAFEE,EAAAA,EAAAA,KAAc,IAAMV,EAAMW,SAASN,EAAAA,GAAAA,QAAAA,yBAE9B,CAACO,EAAUC,KAChB,MAAMC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO5B,EAAY,EACzD6B,EAAAA,EAAAA,IAAOT,IAWLU,EAAAA,EAAAA,IAAoB,IAAI,KAVvBH,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzB,EAAY,EACnD0B,EAAAA,EAAAA,IAAOX,KACHS,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaN,EAAwB,CAClDrB,IAAK,EACLS,WAAWgB,EAAAA,EAAAA,IAAOhB,GAClBI,eAAeY,EAAAA,EAAAA,IAAOZ,IACrB,KAAM,EAAG,CAAC,YAAa,qBACzBU,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaC,EAAAA,EAAU,CAAE5B,IAAK,KACjDC,MAGN,CAEJ,I,UCvDA,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O","sources":["webpack://fittrackee_client/./src/views/AdminView.vue?67de","webpack://fittrackee_client/./src/views/AdminView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64629971\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig, IAppStatistics } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminView',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef<TAppConfig> = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appStatistics: ComputedRef<IAppStatistics> = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_STATS]\n )\n const isAuthUserAmin: ComputedRef<boolean> = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_ADMIN]\n )\n const userLoading: ComputedRef<boolean> = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_STATS))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(userLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAuthUserAmin))\n ? (_openBlock(), _createBlock(_component_router_view, {\n key: 0,\n appConfig: _unref(appConfig),\n appStatistics: _unref(appStatistics)\n }, null, 8, [\"appConfig\", \"appStatistics\"]))\n : (_openBlock(), _createBlock(NotFound, { key: 1 })),\n _hoisted_3\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminView.vue?vue&type=style&index=0&id=64629971&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64629971\"]])\n\nexport default __exports__"],"names":["_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","class","_hoisted_2","key","_hoisted_3","_createElementVNode","_defineComponent","__name","setup","__props","store","useStore","appConfig","computed","getters","ROOT_STORE","appStatistics","isAuthUserAmin","AUTH_USER_STORE","userLoading","onBeforeMount","dispatch","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_unref","_createCommentVNode","_createBlock","NotFound","__exports__"],"sourceRoot":""}
{"version":3,"file":"static/js/admin.4d1d1ecc.js","mappings":"mOAGA,MAAMA,EAAeC,KAAMC,EAAAA,EAAAA,IAAa,mBAAmBD,EAAEA,KAAIE,EAAAA,EAAAA,MAAcF,GACzEG,EAAa,CACjBC,GAAI,QACJC,MAAO,QAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,aAEHG,EAA2BT,GAAa,KAAmBU,EAAAA,EAAAA,GAAoB,MAAO,CAAEL,GAAI,UAAY,MAAO,KAUrH,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAEN,MAAMC,GAAQC,EAAAA,EAAAA,KAERC,GAAqCC,EAAAA,EAAAA,KACzC,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAA6CH,EAAAA,EAAAA,KACjD,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,aAEhBE,GAAuCJ,EAAAA,EAAAA,KAC3C,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,YAEhBC,GAAoCN,EAAAA,EAAAA,KACxC,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,gBAKxB,OAFEE,EAAAA,EAAAA,KAAc,IAAMV,EAAMW,SAASN,EAAAA,GAAAA,QAAAA,yBAE9B,CAACO,EAAUC,KAChB,MAAMC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO5B,EAAY,EACzD6B,EAAAA,EAAAA,IAAOT,IAWLU,EAAAA,EAAAA,IAAoB,IAAI,KAVvBH,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzB,EAAY,EACnD0B,EAAAA,EAAAA,IAAOX,KACHS,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaN,EAAwB,CAClDrB,IAAK,EACLS,WAAWgB,EAAAA,EAAAA,IAAOhB,GAClBI,eAAeY,EAAAA,EAAAA,IAAOZ,IACrB,KAAM,EAAG,CAAC,YAAa,qBACzBU,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaC,EAAAA,EAAU,CAAE5B,IAAK,KACjDC,MAGN,CAEJ,I,UCvDA,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O","sources":["webpack://fittrackee_client/./src/views/AdminView.vue?67de","webpack://fittrackee_client/./src/views/AdminView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64629971\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig, IAppStatistics } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminView',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef<TAppConfig> = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appStatistics: ComputedRef<IAppStatistics> = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_STATS]\n )\n const isAuthUserAmin: ComputedRef<boolean> = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_ADMIN]\n )\n const userLoading: ComputedRef<boolean> = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_STATS))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(userLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAuthUserAmin))\n ? (_openBlock(), _createBlock(_component_router_view, {\n key: 0,\n appConfig: _unref(appConfig),\n appStatistics: _unref(appStatistics)\n }, null, 8, [\"appConfig\", \"appStatistics\"]))\n : (_openBlock(), _createBlock(NotFound, { key: 1 })),\n _hoisted_3\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminView.vue?vue&type=style&index=0&id=64629971&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64629971\"]])\n\nexport default __exports__"],"names":["_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","class","_hoisted_2","key","_hoisted_3","_createElementVNode","_defineComponent","__name","setup","__props","store","useStore","appConfig","computed","getters","ROOT_STORE","appStatistics","isAuthUserAmin","AUTH_USER_STORE","userLoading","onBeforeMount","dispatch","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_unref","_createCommentVNode","_createBlock","NotFound","__exports__"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[845],{4264:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});r(7658);var n=r(6252),a=r(2262),s=r(3577),u=r(2201),o=r(7167),c=r(5801),i=r(9917);const l={key:0,id:"account-confirmation",class:"center-card with-margin"},E={class:"error-message"};var _=(0,n.aZ)({__name:"AccountConfirmationView",setup(e){const t=(0,u.yj)(),r=(0,u.tv)(),_=(0,i.o)(),d=(0,n.Fl)((()=>_.getters[c.SY.GETTERS.ERROR_MESSAGES])),S=(0,n.Fl)((()=>t.query.token));function m(){S.value?_.dispatch(c.YN.ACTIONS.CONFIRM_ACCOUNT,{token:S.value}):r.push("/")}return(0,n.wF)((()=>m())),(0,n.Ah)((()=>_.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,t)=>{const r=(0,n.up)("router-link");return(0,a.SU)(d)?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(o.Z),(0,n._)("p",E,[(0,n._)("span",null,(0,s.zw)(e.$t("error.SOMETHING_WRONG"))+".",1),(0,n.Wm)(r,{class:"links",to:"/account-confirmation/resend"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,s.zw)(e.$t("buttons.ACCOUNT-CONFIRMATION-RESEND"))+"? ",1)])),_:1})])])):(0,n.kq)("",!0)}}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-785df978"]]);var m=S},8160:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});r(7658);var n=r(6252),a=r(2262),s=r(3577),u=r(2201),o=r(7167),c=r(5801),i=r(9917);const l={key:0,id:"email-update",class:"center-card with-margin"},E={class:"error-message"};var _=(0,n.aZ)({__name:"EmailUpdateView",setup(e){const t=(0,u.yj)(),r=(0,u.tv)(),_=(0,i.o)(),d=(0,n.Fl)((()=>_.getters[c.YN.GETTERS.AUTH_USER_PROFILE])),S=(0,n.Fl)((()=>_.getters[c.YN.GETTERS.IS_AUTHENTICATED])),m=(0,n.Fl)((()=>_.getters[c.SY.GETTERS.ERROR_MESSAGES])),p=(0,n.Fl)((()=>t.query.token));function R(){p.value?_.dispatch(c.YN.ACTIONS.CONFIRM_EMAIL,{token:p.value,refreshUser:S.value}):r.push("/")}return(0,n.wF)((()=>R())),(0,n.Ah)((()=>_.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,n.YP)((()=>m.value),(e=>{d.value.username&&e&&r.push("/")})),(e,t)=>{const r=(0,n.up)("router-link"),u=(0,n.up)("i18n-t");return(0,a.SU)(m)&&!(0,a.SU)(d).username?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(o.Z),(0,n._)("p",E,[(0,n._)("span",null,(0,s.zw)(e.$t("error.SOMETHING_WRONG"))+".",1),(0,n._)("span",null,[(0,n.Wm)(u,{keypath:"user.PROFILE.ERRORED_EMAIL_UPDATE"},{default:(0,n.w5)((()=>[(0,n.Wm)(r,{to:"/login"},{default:(0,n.w5)((()=>[(0,n.Uk)((0,s.zw)(e.$t("user.LOG_IN")),1)])),_:1})])),_:1})])])])):(0,n.kq)("",!0)}}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-8c2ec9ce"]]);var m=S},1133:function(e,t,r){r.r(t),r.d(t,{default:function(){return d}});var n=r(6252),a=r(2262),s=r(5801),u=r(9917);const o=e=>((0,n.dD)("data-v-6646c65e"),e=e(),(0,n.Cn)(),e),c={key:0,id:"profile",class:"view"},i=o((()=>(0,n._)("div",{id:"bottom"},null,-1)));var l=(0,n.aZ)({__name:"ProfileView",setup(e){const t=(0,u.o)(),r=(0,n.Fl)((()=>t.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const s=(0,n.up)("router-view");return(0,a.SU)(r).username?((0,n.wg)(),(0,n.iD)("div",c,[(0,n.Wm)(s,{user:(0,a.SU)(r)},null,8,["user"]),i])):(0,n.kq)("",!0)}}}),E=r(3744);const _=(0,E.Z)(l,[["__scopeId","data-v-6646c65e"]]);var d=_},9453:function(e,t,r){r.r(t),r.d(t,{default:function(){return m}});var n=r(6252),a=r(2262),s=r(2201),u=r(2179),o=r(1585),c=r(5801),i=r(9917);const l={key:0,id:"user",class:"view"},E={class:"box"};var _=(0,n.aZ)({__name:"UserView",props:{fromAdmin:{type:Boolean}},setup(e){const t=e,{fromAdmin:r}=(0,a.BK)(t),_=(0,s.yj)(),d=(0,i.o)(),S=(0,n.Fl)((()=>d.getters[c.RT.GETTERS.USER]));return(0,n.wF)((()=>{_.params.username&&"string"===typeof _.params.username&&d.dispatch(c.RT.ACTIONS.GET_USER,_.params.username)})),(0,n.Jd)((()=>{d.dispatch(c.RT.ACTIONS.EMPTY_USER)})),(e,t)=>(0,a.SU)(S).username?((0,n.wg)(),(0,n.iD)("div",l,[(0,n.Wm)(u.Z,{user:(0,a.SU)(S)},null,8,["user"]),(0,n._)("div",E,[(0,n.Wm)(o.Z,{user:(0,a.SU)(S),"from-admin":(0,a.SU)(r)},null,8,["user","from-admin"])])])):(0,n.kq)("",!0)}}),d=r(3744);const S=(0,d.Z)(_,[["__scopeId","data-v-af7007f4"]]);var m=S}}]);
//# sourceMappingURL=profile.984aa6f4.js.map
//# sourceMappingURL=profile.24318810.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[193],{7885:function(e,s,t){t.r(s),t.d(s,{default:function(){return A}});var a=t(6252),r=t(2262),l=t(3577),o=(t(7658),t(9150)),n=t(436);const c={class:"chart-menu"},i={class:"chart-arrow"},u={class:"time-frames custom-checkboxes-group"},d={class:"time-frames-checkboxes custom-checkboxes"},p=["id","name","checked","onInput"],m={class:"chart-arrow"};var v=(0,a.aZ)({__name:"StatsMenu",emits:["arrowClick","timeFrameUpdate"],setup(e,{emit:s}){const t=(0,r.iH)("month"),o=["week","month","year"];function n(e){t.value=e,s("timeFrameUpdate",e)}return(e,r)=>((0,a.wg)(),(0,a.iD)("div",c,[(0,a._)("div",i,[(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true",onClick:r[0]||(r[0]=e=>s("arrowClick",!0))})]),(0,a._)("div",u,[(0,a._)("div",d,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(o,(s=>(0,a._)("div",{class:"time-frame custom-checkbox",key:s},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:s,name:s,checked:t.value===s,onInput:e=>n(s)},null,40,p),(0,a._)("span",null,(0,l.zw)(e.$t(`statistics.TIME_FRAMES.${s}`)),1)])]))),64))])]),(0,a._)("div",m,[(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true",onClick:r[1]||(r[1]=e=>s("arrowClick",!1))})])]))}}),k=t(3744);const _=(0,k.Z)(v,[["__scopeId","data-v-22d55de2"]]);var S=_,w=t(631);const f={class:"sports-menu"},h=["id","name","checked","onInput"],U={class:"sport-label"};var b=(0,a.aZ)({__name:"StatsSportsMenu",props:{userSports:null,selectedSportIds:{default:()=>[]}},emits:["selectedSportIdsUpdate"],setup(e,{emit:s}){const t=e,{t:n}=(0,o.QT)(),c=(0,a.f3)("sportColors"),{selectedSportIds:i}=(0,r.BK)(t),u=(0,a.Fl)((()=>(0,w.xH)(t.userSports,n)));function d(e){s("selectedSportIdsUpdate",e)}return(e,s)=>{const t=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",f,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,r.SU)(u),(e=>((0,a.wg)(),(0,a.iD)("label",{type:"checkbox",key:e.id,style:(0,l.j5)({color:e.color?e.color:(0,r.SU)(c)[e.label]})},[(0,a._)("input",{type:"checkbox",id:e.id,name:e.label,checked:(0,r.SU)(i).includes(e.id),onInput:s=>d(e.id)},null,40,h),(0,a.Wm)(t,{"sport-label":e.label,color:e.color},null,8,["sport-label","color"]),(0,a._)("span",U,(0,l.zw)(e.translatedLabel),1)],4)))),128))])}}});const I=b;var g=I,T=t(9318);const y={key:0,id:"user-statistics"};var C=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const s=e,{t:t}=(0,o.QT)(),{sports:l,user:c}=(0,r.BK)(s),i=(0,r.iH)("month"),u=(0,r.iH)(v(i.value)),d=(0,a.Fl)((()=>(0,w.xH)(s.sports,t))),p=(0,r.iH)(_(s.sports));function m(e){i.value=e,u.value=v(i.value)}function v(e){return(0,T.aZ)(new Date,e,s.user.weekm)}function k(e){u.value=(0,T.FN)(u.value,e,s.user.weekm)}function _(e){return e.map((e=>e.id))}function f(e){p.value.includes(e)?p.value=p.value.filter((s=>s!==e)):p.value.push(e)}return(0,a.YP)((()=>s.sports),(e=>{p.value=_(e)})),(e,s)=>(0,r.SU)(d)?((0,a.wg)(),(0,a.iD)("div",y,[(0,a.Wm)(S,{onTimeFrameUpdate:m,onArrowClick:k}),(0,a.Wm)(n.Z,{sports:(0,r.SU)(l),user:(0,r.SU)(c),chartParams:u.value,"displayed-sport-ids":p.value,fullStats:!0},null,8,["sports","user","chartParams","displayed-sport-ids"]),(0,a.Wm)(g,{"selected-sport-ids":p.value,"user-sports":(0,r.SU)(l),onSelectedSportIdsUpdate:f},null,8,["selected-sport-ids","user-sports"])])):(0,a.kq)("",!0)}});const F=(0,k.Z)(C,[["__scopeId","data-v-30799d13"]]);var Z=F,x=t(5630),D=t(5801),H=t(9917);const E={id:"statistics",class:"view"},R={key:0,class:"container"};var W=(0,a.aZ)({__name:"StatisticsView",setup(e){const s=(0,H.o)(),t=(0,a.Fl)((()=>s.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),o=(0,a.Fl)((()=>s.getters[D.O8.GETTERS.SPORTS].filter((e=>t.value.sports_list.includes(e.id)))));return(e,s)=>{const n=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",E,[(0,r.SU)(t).username?((0,a.wg)(),(0,a.iD)("div",R,[(0,a.Wm)(n,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,l.zw)(e.$t("statistics.STATISTICS")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Z,{class:(0,l.C_)({"stats-disabled":0===(0,r.SU)(t).nb_workouts}),user:(0,r.SU)(t),sports:(0,r.SU)(o)},null,8,["class","user","sports"])])),_:1}),0===(0,r.SU)(t).nb_workouts?((0,a.wg)(),(0,a.j4)(x.Z,{key:0})):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])}}});const P=(0,k.Z)(W,[["__scopeId","data-v-2e341d4e"]]);var A=P}}]);
//# sourceMappingURL=statistics.5231fa2f.js.map
//# sourceMappingURL=statistics.560b3502.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,207 @@
# Italian translations for PROJECT.
# Copyright (C) 2022 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-12-11 09:25+0100\n"
"PO-Revision-Date: 2022-12-11 09:25+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: it\n"
"Language-Team: it <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.11.0\n"
#: fittrackee/emails/templates/layout.html:215
#: fittrackee/emails/templates/layout.txt:1
#, python-format
msgid "Hi %(username)s,"
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.txt:6
#: fittrackee/emails/templates/email_update_to_current_email/body.txt:3
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:6
#: fittrackee/emails/templates/layout.html:218
#: fittrackee/emails/templates/password_change/body.txt:3
#: fittrackee/emails/templates/password_reset_request/body.txt:6
#, python-format
msgid ""
"For security, this request was received from a %(operating_system)s "
"device using %(browser_name)s."
msgstr ""
#: fittrackee/emails/templates/layout.html:221
#: fittrackee/emails/templates/layout.txt:5
msgid "Thanks,"
msgstr ""
#: fittrackee/emails/templates/layout.html:222
#: fittrackee/emails/templates/layout.txt:6
msgid "The FitTrackee Team"
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:2
#: fittrackee/emails/templates/account_confirmation/subject.txt:1
msgid "Confirm your account"
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:3
msgid "Use this link to confirm your account."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:4
#: fittrackee/emails/templates/account_confirmation/body.txt:1
msgid "You have created an account on FitTrackee."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:4
msgid "Use the button below to confirm your address email."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:11
#: fittrackee/emails/templates/account_confirmation/body.txt:4
#: fittrackee/emails/templates/email_update_to_new_email/body.html:11
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:4
msgid "Verify your email"
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:18
#: fittrackee/emails/templates/account_confirmation/body.txt:7
msgid ""
"If this account creation wasn't initiated by you, please ignore this "
"email."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:22
#: fittrackee/emails/templates/email_update_to_new_email/body.html:22
#: fittrackee/emails/templates/password_reset_request/body.html:24
msgid ""
"If you're having trouble with the button above, copy and paste the URL "
"below into your web browser."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.txt:2
msgid "Use the link below to confirm your address email."
msgstr ""
#: fittrackee/emails/templates/email_update_to_current_email/body.html:2
#: fittrackee/emails/templates/email_update_to_current_email/subject.txt:1
msgid "Email changed"
msgstr ""
#: fittrackee/emails/templates/email_update_to_current_email/body.html:3
msgid "Your email is being updated."
msgstr ""
#: fittrackee/emails/templates/email_update_to_current_email/body.html:4
#: fittrackee/emails/templates/email_update_to_current_email/body.txt:1
msgid ""
"You recently requested to change your email address for your FitTrackee "
"account to:"
msgstr ""
#: fittrackee/emails/templates/email_update_to_current_email/body.html:18
#: fittrackee/emails/templates/email_update_to_current_email/body.txt:4
msgid ""
"If this email change wasn't initiated by you, please change your password"
" immediately or contact your administrator if your account is locked."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:2
#: fittrackee/emails/templates/email_update_to_new_email/subject.txt:1
msgid "Confirm email change"
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:3
msgid "Use this link to confirm email change."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:4
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:1
msgid ""
"You recently requested to change your email address for your FitTrackee "
"account."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:4
msgid "Use the button below to confirm this address."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:18
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:7
msgid "If this email change wasn't initiated by you, please ignore this email."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:2
msgid "Use the link below to confirm this address."
msgstr ""
#: fittrackee/emails/templates/password_change/body.html:2
#: fittrackee/emails/templates/password_change/subject.txt:1
msgid "Password changed"
msgstr ""
#: fittrackee/emails/templates/password_change/body.html:3
msgid "Your password has been changed."
msgstr ""
#: fittrackee/emails/templates/password_change/body.html:4
#: fittrackee/emails/templates/password_change/body.txt:1
msgid "The password for your FitTrackee account has been changed."
msgstr ""
#: fittrackee/emails/templates/password_change/body.html:5
#: fittrackee/emails/templates/password_change/body.txt:4
msgid ""
"If this password change wasn't initiated by you, please change your "
"password immediately or contact your administrator if your account is "
"locked."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:2
#: fittrackee/emails/templates/password_reset_request/subject.txt:1
msgid "Password reset request"
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:3
#, python-format
msgid ""
"Use this link to reset your password. The link is only valid for "
"%(expiration_delay)s."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:4
#: fittrackee/emails/templates/password_reset_request/body.txt:1
msgid "You recently requested to reset your password for your FitTrackee account."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:4
msgid "Use the button below to reset it."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:5
#: fittrackee/emails/templates/password_reset_request/body.txt:2
#, python-format
msgid "This password reset link is only valid for %(expiration_delay)s."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:13
#: fittrackee/emails/templates/password_reset_request/body.txt:4
msgid "Reset your password"
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:20
#: fittrackee/emails/templates/password_reset_request/body.txt:7
msgid "If you did not request a password reset, please ignore this email."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.txt:1
msgid "Use the link below to reset it."
msgstr ""

View File

@ -0,0 +1,34 @@
"""add Mountaineering
Revision ID: a8cc0adfe1d3
Revises: bf13b8f5589d
Create Date: 2022-12-11 11:03:01.216734
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'a8cc0adfe1d3'
down_revision = 'bf13b8f5589d'
branch_labels = None
depends_on = None
def upgrade():
op.execute(
"""
INSERT INTO sports (label, is_active, stopped_speed_threshold)
VALUES ('Mountaineering', True, 0.1)
"""
)
def downgrade():
op.execute(
"""
DELETE FROM sports
WHERE label = 'Mountaineering';
"""
)

View File

@ -12,15 +12,16 @@
},
"dependencies": {
"@tmcw/togeojson": "^5.5.0",
"@vue-leaflet/vue-leaflet": "^0.6.1",
"@vue-leaflet/vue-leaflet": "^0.7.0",
"@zxcvbn-ts/core": "^2.0.5",
"@zxcvbn-ts/language-common": "^2.0.1",
"@zxcvbn-ts/language-de": "^2.1.0",
"@zxcvbn-ts/language-en": "^2.1.0",
"@zxcvbn-ts/language-fr": "^2.2.0",
"axios": "^1.2.0",
"@zxcvbn-ts/language-it": "^2.1.0",
"axios": "^1.2.1",
"chart.js": "^4.0.1",
"chartjs-plugin-datalabels": "^2.1.0",
"chartjs-plugin-datalabels": "^2.2.0",
"core-js": "^3.26.1",
"date-fns": "^2.29.3",
"date-fns-tz": "^1.3.7",
@ -39,10 +40,10 @@
"devDependencies": {
"@intlify/vue-i18n-loader": "^4.2.0",
"@types/chai": "^4.3.4",
"@types/mocha": "^10.0.0",
"@types/mocha": "^10.0.1",
"@types/sanitize-html": "^2.6.2",
"@typescript-eslint/eslint-plugin": "^5.44.0",
"@typescript-eslint/parser": "^5.44.0",
"@typescript-eslint/eslint-plugin": "^5.46.0",
"@typescript-eslint/parser": "^5.46.0",
"@vue/cli-plugin-babel": "~5.0.8",
"@vue/cli-plugin-eslint": "~5.0.8",
"@vue/cli-plugin-pwa": "~5.0.8",
@ -52,18 +53,18 @@
"@vue/cli-plugin-vuex": "~5.0.8",
"@vue/cli-service": "~5.0.8",
"@vue/eslint-config-typescript": "^11.0.2",
"@vue/test-utils": "^2.2.4",
"@vue/test-utils": "^2.2.6",
"chai": "^4.3.7",
"eslint": "8.28.0",
"eslint": "8.29.0",
"eslint-config-prettier": "^8.5.0",
"eslint-import-resolver-typescript": "^3.5.2",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-vue": "^9.8.0",
"prettier": "^2.8.0",
"sass": "^1.56.1",
"prettier": "^2.8.1",
"sass": "^1.56.2",
"sass-loader": "^13.2.0",
"typescript": "^4.9.3",
"typescript": "^4.9.4",
"vue-cli-plugin-i18n": "~2.3.1"
},
"eslintConfig": {

View File

@ -0,0 +1,57 @@
<template>
<svg
version="1.1"
id="Capa_1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px"
y="0px"
viewBox="0 0 495.017 495.017"
style="enable-background: new 0 0 495.017 495.017"
xml:space="preserve"
>
<desc id="mountaineeringDescription">
silhouette of a person doing mountaineering
</desc>
<g>
<path
d="M271.32,78.354c21.633,0,39.192-17.54,39.192-39.182C310.513,17.541,292.953,0,271.32,0
c-21.633,0-39.175,17.541-39.175,39.173C232.146,60.814,249.688,78.354,271.32,78.354z"
/>
<path
d="M312.763,349.373l-47.021-43.163l2.087-15.884l-70.055-4.301c-4.173,6.412-9.963,14.482-17.193,23.104l-19.17,72.416
l-54.928,73.797c-8.185,11.007-5.92,26.567,5.095,34.76c4.449,3.314,9.658,4.916,14.817,4.916c7.583,0,15.058-3.461,19.941-10.011
l57.794-77.641c1.893-2.539,3.284-5.417,4.092-8.475l16.625-62.781l45.518,41.786l-6.211,90.579
c-0.938,13.691,9.381,25.548,23.083,26.485c0.565,0.041,1.146,0.057,1.73,0.057c12.938,0,23.859-10.035,24.748-23.146
l7.036-102.498C321.269,361.843,318.325,354.477,312.763,349.373z"
/>
<path
d="M398.667,183.428h-70.005l-39.482-56.053l0.13-0.956c1.405-10.708-1.506-21.537-8.091-30.101
c-6.581-8.564-16.288-14.16-26.994-15.567c-11.858-1.545-23.1,2.271-31.54,9.429V43.548c0-8.022-6.503-14.532-14.542-14.532
h-40.277c-8.038,0-14.542,6.51-14.542,14.532v22.637h-12.033c-8.586,0-16.628,4.255-21.463,11.363
c-4.836,7.108-5.838,16.149-2.684,24.149l36.18,91.856v22.718c0,11.152,4.58,21.125,11.876,28.427
c5.046-6.082,12.743-9.713,20.526-9.195l88.571,5.443l6.938-52.94l19.767,28.047c3.881,5.507,10.19,8.783,16.921,8.783h80.744
c11.437,0,20.701-9.268,20.701-20.702C419.367,192.696,410.104,183.428,398.667,183.428z"
/>
<path
d="M191.093,273.166l82.25,5.055c7.117,0.55,12.748-4.789,13.166-11.64c0.422-6.849-4.786-12.737-11.643-13.157l-89.903-5.523
c-5.015-0.348-9.573,2.352-11.805,6.737c-2.039,3.97-50.771,96.822-143.537,83.768c-6.662-0.906-13.068,3.777-14.023,10.569
c-0.954,6.794,3.768,13.078,10.563,14.032c7.198,1.011,14.169,1.488,20.895,1.488C128.224,364.487,177.119,295.915,191.093,273.166
z"
/>
<path
d="M476.659,251.313c-14.223-9.793-36.401-18.891-66.555-18.488c-35.468,0.473-68.598,27.748-69.198,28.412
c-6.13,6.835-5.562,17.348,1.278,23.478c6.824,6.139,17.339,5.564,23.469-1.268l0.114-0.13c0,0,19.495-20.418,36.814-24.925
l-5.822,215.844c0,0.307,0,0.678,0,0.994c0.289,10.198,8.765,18.236,18.955,17.963c10.206-0.276,18.245-8.759,17.985-18.957
l-5.951-221.215c27.271,0.444,43.739,8.938,43.739,8.938c2.65,1.035,5.741,0.022,7.242-2.501
C480.414,256.635,479.359,253.172,476.659,251.313z"
/>
</g>
</svg>
</template>
<script>
export default {
name: 'Mountaineering',
}
</script>

View File

@ -12,6 +12,7 @@
<MountainBikingElectric
v-if="sportLabel === 'Mountain Biking (Electric)'"
/>
<Mountaineering v-if="sportLabel === 'Mountaineering'" />
<Rowing v-if="sportLabel === 'Rowing'" />
<Running v-if="sportLabel === 'Running'" />
<SkiingAlpine v-if="sportLabel === 'Skiing (Alpine)'" />
@ -31,6 +32,7 @@
import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'
import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'
import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'
import Mountaineering from '@/components/Common/Images/SportImage/Mountaineering.vue'
import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'
import Running from '@/components/Common/Images/SportImage/Running.vue'
import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'

View File

@ -6,7 +6,7 @@ import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'
* The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.
* See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation
*/
const disabledLanguages = ['nb'] // to update after translations release
const disabledLanguages = ['it', 'nb'] // to update after translations release
function loadLocaleMessages(): Record<string, LocaleMessages<VueMessageType>> {
const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.ts$/i)

View File

@ -1,59 +1,59 @@
{
"ACTION": "Aktion",
"ACTIVATE_USER_ACCOUNT": "Aktiviere Konto",
"ACTIVE": "Aktiv",
"ADMIN_RIGHTS_DELETE_USER_ACCOUNT": "Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.",
"ADMIN": "Admin",
"ADMINISTRATION": "Administration",
"APPLICATION": "Anwendung",
"APP_CONFIG": {
"ADMIN_CONTACT": "Kontakt-E-Mail des Administrators",
"MAX_USERS_LABEL": "Max. Anzahl aktiver Nutzer",
"MAX_USERS_HELP": "Wenn 0, gibt es keine Registrierungslimitierung..",
"MAX_FILES_IN_ZIP_LABEL": "Max. Dateianzahl im zip Archiv",
"NO_CONTACT_EMAIL": "keine Kontakt-E-Mail",
"SINGLE_UPLOAD_MAX_SIZE_LABEL": "Max. Größe der hochgeladenen Dateien (in Mb)",
"TITLE": "Anwendungskonfiguration",
"ZIP_UPLOAD_MAX_SIZE_LABEL": "Max. Größe des zip Archives (in Mb)"
},
"BACK_TO_ADMIN": "Zurück zu Admin",
"CONFIRM_USER_ACCOUNT_DELETION": "Möchtest du wirklich das {0} Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.",
"CONFIRM_USER_PASSWORD_RESET": "Möchtest du wirklich das {0} Passwort zurücksetzen?",
"CURRENT_EMAIL": "Aktuelle E-Mail",
"DELETE_USER": "Lösche Nutzer",
"EMAIL_SENDING_DISABLED": "E-Mail-Versand ist deaktiviert.",
"ENABLE_DISABLE_SPORTS": "Aktivieren/Deaktivieren von Sportarten.",
"NEW_EMAIL": "Neue E-Mail",
"PASSWORD_RESET_SUCCESSFUL": "Das wasswort wurde zurückgesetzt.",
"REGISTRATION_DISABLED": "Registrierung ist derzeit deaktiviert.",
"REGISTRATION_ENABLED": "Registrierung ist derzeit aktiviert.",
"RESET_USER_PASSWORD": "Passwort zurücksetzen",
"SPORTS": {
"TABLE": {
"ACTIVE": "Aktiv",
"HAS_WORKOUTS": "Trainings existieren",
"IMAGE": "Bild",
"LABEL": "Titel"
"ACTION": "Aktion",
"ACTIVATE_USER_ACCOUNT": "Aktiviere Konto",
"ACTIVE": "Aktiv",
"ADMIN": "Admin",
"ADMINISTRATION": "Administration",
"ADMIN_RIGHTS_DELETE_USER_ACCOUNT": "Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.",
"APPLICATION": "Anwendung",
"APP_CONFIG": {
"ADMIN_CONTACT": "Kontakt-E-Mail des Administrators",
"MAX_FILES_IN_ZIP_LABEL": "Max. Dateianzahl im zip Archiv",
"MAX_USERS_HELP": "Wenn 0, gibt es keine Registrierungslimitierung..",
"MAX_USERS_LABEL": "Max. Anzahl aktiver Nutzer",
"NO_CONTACT_EMAIL": "keine Kontakt-E-Mail",
"SINGLE_UPLOAD_MAX_SIZE_LABEL": "Max. Größe der hochgeladenen Dateien (in Mb)",
"TITLE": "Anwendungskonfiguration",
"ZIP_UPLOAD_MAX_SIZE_LABEL": "Max. Größe des zip Archives (in Mb)"
},
"TITLE": "Sportarten Administration"
},
"UPDATE_APPLICATION_DESCRIPTION": "Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße).",
"UPDATE_USER_EMAIL": "Aktualisiere E-Mail",
"USER": "Nutzer",
"USER_EMAIL_UPDATE_SUCCESSFUL": "Die E-Mail Adresse wurde aktualisiert.",
"USERS": {
"TABLE": {
"ADD_ADMIN_RIGHTS": "Administratorrechte hinzufügen",
"REMOVE_ADMIN_RIGHTS": "Administratorrechte entfernen"
"BACK_TO_ADMIN": "Zurück zu Admin",
"CONFIRM_USER_ACCOUNT_DELETION": "Möchtest du wirklich das {0} Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.",
"CONFIRM_USER_PASSWORD_RESET": "Möchtest du wirklich das {0} Passwort zurücksetzen?",
"CURRENT_EMAIL": "Aktuelle E-Mail",
"DELETE_USER": "Lösche Nutzer",
"EMAIL_SENDING_DISABLED": "E-Mail-Versand ist deaktiviert.",
"ENABLE_DISABLE_SPORTS": "Aktivieren/Deaktivieren von Sportarten.",
"NEW_EMAIL": "Neue E-Mail",
"PASSWORD_RESET_SUCCESSFUL": "Das wasswort wurde zurückgesetzt.",
"REGISTRATION_DISABLED": "Registrierung ist derzeit deaktiviert.",
"REGISTRATION_ENABLED": "Registrierung ist derzeit aktiviert.",
"RESET_USER_PASSWORD": "Passwort zurücksetzen",
"SPORTS": {
"TABLE": {
"ACTIVE": "Aktiv",
"HAS_WORKOUTS": "Trainings existieren",
"IMAGE": "Bild",
"LABEL": "Titel"
},
"TITLE": "Sportarten Administration"
},
"SELECTS": {
"ORDER_BY": {
"ADMIN": "Adminstatus",
"CREATED_AT": "Registrierungsdatum",
"IS_ACTIVE": "Accountstatus",
"USERNAME": "Nutzername",
"WORKOUTS_COUNT": "Trainingsanzahl"
}
}
}
"UPDATE_APPLICATION_DESCRIPTION": "Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße).",
"UPDATE_USER_EMAIL": "Aktualisiere E-Mail",
"USER": "Nutzer",
"USERS": {
"SELECTS": {
"ORDER_BY": {
"ADMIN": "Adminstatus",
"CREATED_AT": "Registrierungsdatum",
"IS_ACTIVE": "Accountstatus",
"USERNAME": "Nutzername",
"WORKOUTS_COUNT": "Trainingsanzahl"
}
},
"TABLE": {
"ADD_ADMIN_RIGHTS": "Administratorrechte hinzufügen",
"REMOVE_ADMIN_RIGHTS": "Administratorrechte entfernen"
}
},
"USER_EMAIL_UPDATE_SUCCESSFUL": "Die E-Mail Adresse wurde aktualisiert."
}

View File

@ -1,10 +1,11 @@
{
"ERROR": {
"Network Error": "Netzwerkfehler.",
"UNKNOWN": "Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.",
"at least one file in zip archive exceeds size limit, please check the archive": "Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv.",
"email: valid email must be provided": "E-Mail: Eine gültige E-Mail muss angegeben werden.",
"error during gpx processing": "Fehler bei der GPX-Verarbeitung.",
"error during gpx file parsing": "Fehler beim Einlesen der GPX-Datei",
"error during gpx processing": "Fehler bei der GPX-Verarbeitung.",
"error on getting configuration": "Fehler beim Abrufen der Konfiguration.",
"error when updating configuration": "Fehler beim Aktualisieren der Konfiguration",
"error, please try again or contact the administrator": "Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.",
@ -15,17 +16,16 @@
"invalid payload": "Die bereitgestellten Daten sind ungültig.",
"invalid token, please log in again": "Ungültiges Token, bitte erneut anmelden.",
"invalid token, please request a new token": "Ungültiges Token, bitte erneut anmelden.",
"Network Error": "Netzwerkfehler.",
"new email must be different than curent email": "Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden",
"no file part": "Keine Datei angegeben.",
"no selected file": "Keine Datei ausgewählt.",
"the number of files in the archive exceeds the limit": "Die Anzahl der Dateien im Archiv überschreitet die Begrenzung.",
"password: password and password confirmation do not match": "Passwort: Passwort und Passwortbestätigung stimmen nicht überein.",
"provide a valid auth token": "Gebe ein gültiges Authentifizierungstoken an.",
"signature expired, please log in again": "Die Signatur ist abgelaufen. Bitte melde dich erneut an.",
"sorry, that username is already taken": "Es tut mir leid, der Benutzername ist schon vergeben.",
"sport does not exist": "Sportart existiert nicht.",
"signature expired, please log in again": "Die Signatur ist abgelaufen. Bitte melde dich erneut an.",
"successfully registered": "Registrierung erfolgreich.",
"the number of files in the archive exceeds the limit": "Die Anzahl der Dateien im Archiv überschreitet die Begrenzung.",
"user does not exist": "Der Nutzer existiert nicht.",
"valid email must be provided for admin contact": "Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden",
"you can not delete your account, no other user has admin rights": "Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt.",

View File

@ -9,14 +9,14 @@
"HIDDEN": "Versteckt",
"HOME": "Startseite",
"SELECTS": {
"ORDER": {
"ASC": "aufsteigend",
"DESC": "absteigend",
"LABEL": "sortieren"
},
"ORDER_BY": {
"LABEL": "sortiert nach"
},
"ORDER": {
"LABEL": "sortieren",
"ASC": "aufsteigend",
"DESC": "absteigend"
},
"PER_PAGE": {
"LABEL": "pro Seite"
}

View File

@ -1,4 +1,4 @@
{
"DASHBOARD": "Dashboard",
"THIS_MONTH": "Dieser Monat"
"DASHBOARD": "Dashboard",
"THIS_MONTH": "Dieser Monat"
}

View File

@ -1,9 +1,9 @@
{
"UNKNOWN": "Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.",
"APP_ERROR": "Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.<br />Bitte versuche es später noch einmal oder kontaktiere den Administrator.",
"NOT_FOUND": {
"PAGE": "Seite nicht gefunden",
"WORKOUT": "Training nicht gefunden"
},
"SOMETHING_WRONG": "Etwas lief schief"
"APP_ERROR": "Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.<br />Bitte versuche es später noch einmal oder kontaktiere den Administrator.",
"NOT_FOUND": {
"PAGE": "Seite nicht gefunden",
"WORKOUT": "Training nicht gefunden"
},
"SOMETHING_WRONG": "Etwas lief schief",
"UNKNOWN": "Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."
}

View File

@ -9,20 +9,20 @@
"REDIRECT_URL": "Weiterleitungs-URL",
"SCOPE": {
"LABEL": "Geltungsbereich",
"profile:write_DESCRIPTION": "erlaubt Schreibzugriff auf <code>auth</code>-Endpunkte",
"application:write_DESCRIPTION": "erlaubt Schreibzugriff auf die Anwendungskonfiguration",
"profile:read_DESCRIPTION": "erlaubt Lesezugriff auf <code>auth</code>-Endpunkte",
"profile:write_DESCRIPTION": "erlaubt Schreibzugriff auf <code>auth</code>-Endpunkte",
"users:read_DESCRIPTION": "erlaubt Lesezugriff auf <code>users</code>-Endpunkte",
"users:write_DESCRIPTION": "erlaubt Schreibzugriff auf <code>users</code>-Endpunkte",
"workouts:read_DESCRIPTION": "erlaubt Lesezugriff auf <code>workouts</code>-Endpunkte",
"workouts:write_DESCRIPTION": "erlaubt Schreibzugriff auf <code>workouts</code>-Endpunkte",
"application:write_DESCRIPTION": "erlaubt Schreibzugriff auf die Anwendungskonfiguration"
"workouts:write_DESCRIPTION": "erlaubt Schreibzugriff auf <code>workouts</code>-Endpunkte"
},
"URL": "Anwendungs-URL"
},
"APPS_LIST": "OAuth2-Anwendungen",
"APP_CREATED_SUCCESSFULLY": "Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen.",
"APP_DELETION_CONFIRMATION": "Bist sicher, dass du diese App löschen willst?",
"APP_REQUESTING_ACCESS": "Die Anwendung {0} fragt an:",
"APPS_LIST": "OAuth2-Anwendungen",
"AUTHORIZE_APP": "{0} den Zugriff auf deinen Account erlauben?",
"COPY_TO_CLIPBOARD": "in Zwischenablage kopieren",
"DELETE_APP": "Anwendung löschen",

View File

@ -1,8 +1,8 @@
{
"STATISTICS": "Statistik",
"TIME_FRAMES": {
"week": "Woche",
"month": "Monat",
"year": "Jahr"
}
"STATISTICS": "Statistik",
"TIME_FRAMES": {
"month": "Monat",
"week": "Woche",
"year": "Jahr"
}
}

View File

@ -12,38 +12,38 @@
"HIDE_PASSWORD": "Passwort verbergen",
"INVALID_TOKEN": "Ungültiges Token, bitte fordere ein neues Passworts an.",
"LANGUAGE": "Sprache",
"LOG_IN": "Anmelden",
"LOGIN": "Anmeldung",
"LOGOUT": "Abmelden",
"LOG_IN": "Anmelden",
"NEW_PASSWORD": "Neues Passwort",
"NO_USERS_FOUND": "Keine Nutzer gefunden.",
"PASSWORD": "Passwort",
"PASSWORD_INFO": "Mindestens 8 Zeichen sind erforderlich.",
"PASSWORD_FORGOTTEN": "Passwort vergessen?",
"PASSWORD_INFO": "Mindestens 8 Zeichen sind erforderlich.",
"PASSWORD_RESET": "Passwort zurücksetzen",
"PASSWORD_SENT_EMAIL_TEXT": "Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen.",
"PASSWORD_STRENGTH": {
"WEAK": "schwach",
"AVERAGE": "mittel",
"GOOD": "gut",
"STRONG": "start",
"LABEL": "Passwortstärke",
"STRONG": "start",
"SUGGESTIONS": {
"l33t": "Vermeide vorhersehbare Buchstabenersetzungen wie {'@'} für a.",
"reverseWords": "Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.",
"allUppercase": "Schreibe einige, aber nicht alle Buchstaben groß.",
"anotherWord": "Füge weitere weniger gebräuchliche Wörter hinzu.",
"associatedYears": "Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.",
"capitalization": "Schreibe mehr als nur den ersten Buchstaben groß.",
"dates": "Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden.",
"recentYears": "Vermeide Angabe von letzten Jahreszahlen.",
"associatedYears": "Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.",
"sequences": "Vermeide gebräuchliche Zeichenfolgen.",
"repeated": "Vermeide wiederholungen von Wörtern und Zeichen.",
"l33t": "Vermeide vorhersehbare Buchstabenersetzungen wie {'@'} für a.",
"longerKeyboardPattern": "Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.",
"anotherWord": "Füge weitere weniger gebräuchliche Wörter hinzu.",
"useWords": "Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.",
"noNeed": "Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden.",
"pwned": "Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."
}
"pwned": "Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern.",
"recentYears": "Vermeide Angabe von letzten Jahreszahlen.",
"repeated": "Vermeide wiederholungen von Wörtern und Zeichen.",
"reverseWords": "Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.",
"sequences": "Vermeide gebräuchliche Zeichenfolgen.",
"useWords": "Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."
},
"WEAK": "schwach"
},
"PASSWORD_UPDATED": "Dein Passwort wurde aktualisiert. Klicke {0} um dich anzumelden.",
"PROFILE": {
@ -57,20 +57,32 @@
"EDIT_PREFERENCES": "Einstellungen ändern",
"EDIT_SPORTS_PREFERENCES": "Einstellungen für Sportarten ändern",
"ERRORED_EMAIL_UPDATE": "Bitte {0} um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator",
"FIRST_NAME": "Vorname",
"FIRST_DAY_OF_WEEK": "Erster Tag der Woche",
"FIRST_NAME": "Vorname",
"LANGUAGE": "Sprache",
"LAST_NAME": "Nachname",
"LOCATION": "Ort",
"MONDAY": "Montag",
"PICTURE": "Bild",
"PICTURE_EDITION": "Bildausgabe",
"PICTURE_UPDATE": "Bild aktualisieren",
"PICTURE_REMOVE": "Bild entfernen",
"PICTURE_UPDATE": "Bild aktualisieren",
"PREFERENCES_EDITION": "Einstellungsausgabe",
"PROFILE_EDITION": "Profil-Ausgabe",
"REGISTRATION_DATE": "Registrierungsdatum",
"SPORT": {
"ACTION": "Aktion",
"COLOR": "Farbe",
"DISABLED_BY_ADMIN": "vom Admin deaktiviert",
"IS_ACTIVE": "aktiv",
"LABEL": "Titel",
"STOPPED_SPEED_THRESHOLD": "Geschwindigkeitsschwellenwert für Stopp"
},
"SPORTS_EDITION": "Sportarten-Einstellungsausgabe",
"SUCCESSFUL_EMAIL_UPDATE": "Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen.",
"SUCCESSFUL_REGISTRATION": "Dein Konto wurde erfolgreich erstellt.",
"SUCCESSFUL_REGISTRATION_WITH_EMAIL": "Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt.",
"SUCCESSFUL_UPDATE": "Dein Konto wurde erfolgreich aktualisiert.",
"SUNDAY": "Sontag",
"TABS": {
"ACCOUNT": "Konto",
@ -80,32 +92,20 @@
"PROFILE": "Profil",
"SPORTS": "Sportarten"
},
"SPORT": {
"ACTION": "Aktion",
"COLOR": "Farbe",
"DISABLED_BY_ADMIN": "vom Admin deaktiviert",
"IS_ACTIVE": "aktiv",
"LABEL": "Titel",
"STOPPED_SPEED_THRESHOLD": "Geschwindigkeitsschwellenwert für Stopp"
},
"SUCCESSFUL_EMAIL_UPDATE": "Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen.",
"SUCCESSFUL_REGISTRATION": "Dein Konto wurde erfolgreich erstellt.",
"SUCCESSFUL_REGISTRATION_WITH_EMAIL": "Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt.",
"SUCCESSFUL_UPDATE": "Dein Konto wurde erfolgreich aktualisiert.",
"TIMEZONE": "Zeitzone",
"UNITS": {
"LABEL": "Einheiten für die Distanz",
"IMPERIAL": "Imperiales System (ft, mi)",
"LABEL": "Einheiten für die Distanz",
"METRIC": "Metrisches System (m, km)"
},
"TIMEZONE": "Zeitzone"
}
},
"REGISTER": "Registrieren",
"RESENT_ACCOUNT_CONFIRMATION": "E-Mail zur Kontobestätigung erneut senden",
"REGISTER_DISABLED": "Entschuldigung, die Registrierung ist deaktiviert.",
"RESENT_ACCOUNT_CONFIRMATION": "E-Mail zur Kontobestätigung erneut senden",
"RESET_PASSWORD": "Passwort zurücksetzen",
"SHOW_PASSWORD": "Passwort anzeigen",
"THIS_USER_ACCOUNT_IS_INACTIVE": "Dieser Account ist inaktiv.",
"USER_PICTURE": "Benutzerbild",
"USERNAME": "Nutzername",
"USERNAME_INFO": "3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt."
"USERNAME_INFO": "3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt.",
"USER_PICTURE": "Benutzerbild"
}

View File

@ -2,8 +2,8 @@
"ADD_WORKOUT": "Training hinzufügen",
"ANALYSIS": "Analyse",
"ASCENT": "Aufstieg",
"AVE_SPEED": "Durchschn. Geschwindigkeit",
"AVERAGE_SPEED": "Durchschnittsgeschwindigkeit",
"AVE_SPEED": "Durchschn. Geschwindigkeit",
"BACK_TO_WORKOUT": "zurück zum Training",
"DATE": "Datum",
"DESCENT": "Abstieg",
@ -16,6 +16,8 @@
"FROM": "Von",
"GPX_FILE": ".gpx Datei",
"HIDE_FILTERS": "verberge Filter",
"INVALID_DISTANCE": "Die Distanz muss größer als 0 sein",
"INVALID_DURATION": "Die Dauer muss größer als 0 Sekunden sein",
"LATEST_WORKOUTS": "Letzte Trainings",
"LOAD_MORE_WORKOUT": "Lade mehr Trainings",
"MAX_ALTITUDE": "maximale Höhe",
@ -25,6 +27,7 @@
"MIN_ALTITUDE": "minimale Höhe",
"NEXT_SEGMENT": "Nächstes Segment",
"NEXT_WORKOUT": "Nächstes Training",
"NOTES": "Anmerkungen",
"NO_DATA_CLEANING": "Daten aus gpx, ohne Bereinigung",
"NO_FILE_PROVIDED": "Keine Datei angegeben",
"NO_FOLDER": "enthält keinen Ordner",
@ -36,7 +39,6 @@
"NO_PREVIOUS_WORKOUT": "Kein vorheriges Training",
"NO_RECORDS": "Keine Aufzeichnungen.",
"NO_WORKOUTS": "Keine Trainings.",
"NOTES": "Anmerkungen",
"PAUSES": "Pausen",
"PREVIOUS_SEGMENT": "Vorheriges Segment",
"PREVIOUS_WORKOUT": "Vorheriges Training",
@ -58,27 +60,6 @@
"TOTAL_DURATION": "Gesamtdauer",
"UPLOAD_FIRST_WORKOUT": "Füge erstes Training hinzu!",
"WEATHER": {
"HUMIDITY": "Luftfeuchtigkeit",
"TEMPERATURE": "Temperatur",
"WIND": "Wind",
"WIND_DIRECTIONS": {
"N": "N",
"NNE": "NNO",
"NE": "NO",
"ENE": "ONO",
"E": "O",
"ESE": "OSO",
"SE": "SO",
"SSE": "SSO",
"S": "S",
"SSW": "SSW",
"SW": "SW",
"WSW": "WSW",
"W": "W",
"WNW": "WNW",
"NW": "NW",
"NNW": "NNW"
},
"DARK_SKY": {
"clear-day": "klarer Tag",
"clear-night": "klare Nacht",
@ -90,10 +71,31 @@
"sleet": "Schneeregen",
"snow": "Schnee",
"wind": "Wind"
},
"HUMIDITY": "Luftfeuchtigkeit",
"TEMPERATURE": "Temperatur",
"WIND": "Wind",
"WIND_DIRECTIONS": {
"E": "O",
"ENE": "ONO",
"ESE": "OSO",
"N": "N",
"NE": "NO",
"NNE": "NNO",
"NNW": "NNW",
"NW": "NW",
"S": "S",
"SE": "SO",
"SSE": "SSO",
"SSW": "SSW",
"SW": "SW",
"W": "W",
"WNW": "WNW",
"WSW": "WSW"
}
},
"WITH_GPX": "mit .gpx Datei",
"WITHOUT_GPX": "ohne .gpx Datei",
"WITH_GPX": "mit .gpx Datei",
"WORKOUT": "Training | Trainings",
"WORKOUT_DATE": "Trainingsdatum",
"WORKOUT_DELETION_CONFIRMATION": "Bist du sicher, dass du dieses Training löschen möchtest?",

View File

@ -1,6 +1,6 @@
{
"CONTACT_ADMIN": "Contact the administrator",
"FITTRACKEE_DESCRIPTION": "<strong>FitTrackee</strong> is a self-hosted outdoor activity tracker.",
"FITTRACKEE_LICENSE": "under {0} license ",
"SOURCE_CODE": "Source code"
"CONTACT_ADMIN": "Contact the administrator",
"FITTRACKEE_DESCRIPTION": "<strong>FitTrackee</strong> is a self-hosted outdoor activity tracker.",
"FITTRACKEE_LICENSE": "under {0} license ",
"SOURCE_CODE": "Source code"
}

Some files were not shown because too many files have changed in this diff Show More