geo-activity-playground 0.36.2__py3-none-any.whl → 0.38.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- geo_activity_playground/core/activities.py +12 -0
- geo_activity_playground/core/config.py +6 -2
- geo_activity_playground/core/enrichment.py +9 -0
- geo_activity_playground/core/meta_search.py +157 -0
- geo_activity_playground/core/summary_stats.py +30 -0
- geo_activity_playground/core/test_meta_search.py +100 -0
- geo_activity_playground/core/test_summary_stats.py +108 -0
- geo_activity_playground/webui/activity/controller.py +20 -0
- geo_activity_playground/webui/activity/templates/activity/day.html.j2 +3 -10
- geo_activity_playground/webui/activity/templates/activity/name.html.j2 +2 -0
- geo_activity_playground/webui/activity/templates/activity/show.html.j2 +17 -0
- geo_activity_playground/webui/app.py +27 -10
- geo_activity_playground/webui/eddington_blueprint.py +167 -58
- geo_activity_playground/webui/{equipment/controller.py → equipment_blueprint.py} +29 -42
- geo_activity_playground/webui/explorer/blueprint.py +4 -0
- geo_activity_playground/webui/heatmap/blueprint.py +10 -29
- geo_activity_playground/webui/heatmap/heatmap_controller.py +45 -103
- geo_activity_playground/webui/heatmap/templates/heatmap/index.html.j2 +5 -37
- geo_activity_playground/webui/search_blueprint.py +40 -71
- geo_activity_playground/webui/search_util.py +64 -0
- geo_activity_playground/webui/summary_blueprint.py +40 -39
- geo_activity_playground/webui/templates/eddington/index.html.j2 +73 -1
- geo_activity_playground/webui/{equipment/templates → templates}/equipment/index.html.j2 +3 -5
- geo_activity_playground/webui/templates/search/index.html.j2 +34 -87
- geo_activity_playground/webui/templates/search_form.html.j2 +116 -0
- geo_activity_playground/webui/templates/summary/index.html.j2 +5 -1
- {geo_activity_playground-0.36.2.dist-info → geo_activity_playground-0.38.0.dist-info}/METADATA +1 -1
- {geo_activity_playground-0.36.2.dist-info → geo_activity_playground-0.38.0.dist-info}/RECORD +31 -27
- geo_activity_playground/webui/equipment/__init__.py +0 -0
- geo_activity_playground/webui/equipment/blueprint.py +0 -16
- {geo_activity_playground-0.36.2.dist-info → geo_activity_playground-0.38.0.dist-info}/LICENSE +0 -0
- {geo_activity_playground-0.36.2.dist-info → geo_activity_playground-0.38.0.dist-info}/WHEEL +0 -0
- {geo_activity_playground-0.36.2.dist-info → geo_activity_playground-0.38.0.dist-info}/entry_points.txt +0 -0
@@ -1,8 +1,13 @@
|
|
1
1
|
{% extends "page.html.j2" %}
|
2
|
+
{% from "search_form.html.j2" import search_form %}
|
2
3
|
|
3
4
|
{% block container %}
|
4
5
|
<h1 class="mb-3">Eddington Number</h1>
|
5
6
|
|
7
|
+
<div class="mb-3">
|
8
|
+
{{ search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) }}
|
9
|
+
</div>
|
10
|
+
|
6
11
|
<div class="row mb-3">
|
7
12
|
<div class="col-md-4">
|
8
13
|
<h2>Definition</h2>
|
@@ -50,7 +55,74 @@
|
|
50
55
|
<p>In a graphical representation, the Eddington number is the distance where the red line intersects with the
|
51
56
|
blue area.</p>
|
52
57
|
|
53
|
-
{{ vega_direct("
|
58
|
+
{{ vega_direct("logarithmic_plot", logarithmic_plot) }}
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div class="mb-3">
|
63
|
+
<h2 class="mb-3">Eddington number history</h2>
|
64
|
+
|
65
|
+
<p>How did the Eddington number evolve over time?</p>
|
66
|
+
|
67
|
+
{{ vega_direct("eddington_number_history_plot", eddington_number_history_plot) }}
|
68
|
+
</div>
|
69
|
+
|
70
|
+
<div class="mb-3">
|
71
|
+
<h2 class="mb-3">Yearly Eddington number</h2>
|
72
|
+
|
73
|
+
<p>If we only consider the activities within one calendar year for the Eddington number, we get the following:</p>
|
74
|
+
|
75
|
+
<table class="table">
|
76
|
+
<thead>
|
77
|
+
<tr>
|
78
|
+
<th>Year</th>
|
79
|
+
<th>Eddington number</th>
|
80
|
+
</tr>
|
81
|
+
</thead>
|
82
|
+
<tbody>
|
83
|
+
{% for year, eddington in yearly_eddington.items() %}
|
84
|
+
<tr>
|
85
|
+
<td>{{ year }}</td>
|
86
|
+
<td>{{ eddington }}</td>
|
87
|
+
</tr>
|
88
|
+
{% endfor %}
|
89
|
+
</tbody>
|
90
|
+
</table>
|
91
|
+
</div>
|
92
|
+
|
93
|
+
|
94
|
+
<h2 class="mb-3">Eddington number per Week</h2>
|
95
|
+
|
96
|
+
<div class="row mb-3">
|
97
|
+
<div class="col-md-8">
|
98
|
+
{{ vega_direct("eddington_per_week_plot", eddington_per_week_plot) }}
|
99
|
+
</div>
|
100
|
+
|
101
|
+
<div class="col-md-4">
|
102
|
+
<table class="table">
|
103
|
+
<thead>
|
104
|
+
<tr>
|
105
|
+
<th>Distance / km</th>
|
106
|
+
<th>Count</th>
|
107
|
+
<th>Missing weeks</th>
|
108
|
+
</tr>
|
109
|
+
</thead>
|
110
|
+
<tbody>
|
111
|
+
{% for row in eddington_table_weeks %}
|
112
|
+
<tr>
|
113
|
+
<td>{{ row['distance_km'] }}</td>
|
114
|
+
<td>{{ row['total'] }}</td>
|
115
|
+
<td>{{ row['missing'] }}</td>
|
116
|
+
</tr>
|
117
|
+
{% endfor %}
|
118
|
+
</tbody>
|
119
|
+
</table>
|
54
120
|
</div>
|
55
121
|
</div>
|
122
|
+
|
123
|
+
<div class="row mb-1">
|
124
|
+
|
125
|
+
</div>
|
126
|
+
|
127
|
+
|
56
128
|
{% endblock %}
|
@@ -13,7 +13,6 @@
|
|
13
13
|
<thead>
|
14
14
|
<tr>
|
15
15
|
<th>Equipment</th>
|
16
|
-
<th>Primarily used for</th>
|
17
16
|
<th style="text-align: right;">Distance / km</th>
|
18
17
|
<th style="text-align: right;">First use</th>
|
19
18
|
<th style="text-align: right;">Last use</th>
|
@@ -23,10 +22,9 @@
|
|
23
22
|
{% for equipment in equipment_summary %}
|
24
23
|
<tr>
|
25
24
|
<td>{{ equipment.equipment }}</td>
|
26
|
-
<td>{{ equipment.
|
27
|
-
<td style="text-align: right;">{{ equipment.
|
28
|
-
<td style="text-align: right;">{{ equipment.
|
29
|
-
<td style="text-align: right;">{{ equipment.last_use.date() }}</td>
|
25
|
+
<td style="text-align: right;">{{ equipment.total_distance_km }}</td>
|
26
|
+
<td style="text-align: right;">{{ equipment.first_use }}</td>
|
27
|
+
<td style="text-align: right;">{{ equipment.last_use }}</td>
|
30
28
|
</tr>
|
31
29
|
{% endfor %}
|
32
30
|
</tbody>
|
@@ -1,95 +1,42 @@
|
|
1
1
|
{% extends "page.html.j2" %}
|
2
|
+
{% from "search_form.html.j2" import search_form %}
|
2
3
|
|
3
4
|
{% block container %}
|
4
5
|
|
5
6
|
<h1 class="row mb-3">Activities Overview & Search</h1>
|
6
7
|
|
7
|
-
<div class="
|
8
|
-
|
9
|
-
<form>
|
10
|
-
<div class="mb-3">
|
11
|
-
<label for="name" class="form-label">Name</label>
|
12
|
-
<input type="text" class="form-control" id="name" name="name" value="{{ name }}">
|
13
|
-
<div class="form-check">
|
14
|
-
<input class="form-check-input" type="checkbox" name="name_exact" value="true" id="name_exact" {% if
|
15
|
-
name_exact %} checked {% endif %}>
|
16
|
-
<label class="form-check-label" for="name_exact">
|
17
|
-
Exact match
|
18
|
-
</label>
|
19
|
-
</div>
|
20
|
-
<div class="form-check">
|
21
|
-
<input class="form-check-input" type="checkbox" name="name_casing" value="true" id="name_casing" {%
|
22
|
-
if name_casing %} checked {% endif %}>
|
23
|
-
<label class="form-check-label" for="name_casing">
|
24
|
-
Case sensitive
|
25
|
-
</label>
|
26
|
-
</div>
|
27
|
-
</div>
|
28
|
-
|
29
|
-
<div class="mb-3">
|
30
|
-
<label for="begin" class="form-label">After</label>
|
31
|
-
<input type="text" class="form-control" id="begin" name="begin" value="{{ begin }}">
|
32
|
-
<label for="end" class="form-label">Until</label>
|
33
|
-
<input type="text" class="form-control" id="end" name="end" value="{{ end }}">
|
34
|
-
</div>
|
35
|
-
|
36
|
-
<div class="mb-3">
|
37
|
-
<label for="" class="form-label">Kind</label>
|
38
|
-
{% for kind in kinds_avail %}
|
39
|
-
<div class="form-check">
|
40
|
-
<input class="form-check-input" type="checkbox" name="kind" value="{{ kind }}" id="kind_{{ kind }}"
|
41
|
-
{% if kind in kinds %} checked {% endif %}>
|
42
|
-
<label class="form-check-label" for="kind_{{ kind }}">
|
43
|
-
{{ kind }}
|
44
|
-
</label>
|
45
|
-
</div>
|
46
|
-
{% endfor %}
|
47
|
-
</div>
|
48
|
-
|
49
|
-
<div class="mb-3">
|
50
|
-
<label for="" class="form-label">Equipment</label>
|
51
|
-
{% for equipment in equipments_avail %}
|
52
|
-
<div class="form-check">
|
53
|
-
<input class="form-check-input" type="checkbox" name="equipment" value="{{ equipment }}"
|
54
|
-
id="equipment_{{ equipment }}" {% if equipment in equipments %} checked {% endif %}>
|
55
|
-
<label class="form-check-label" for="equipment_{{ equipment }}">
|
56
|
-
{{ equipment }}
|
57
|
-
</label>
|
58
|
-
</div>
|
59
|
-
{% endfor %}
|
60
|
-
</div>
|
61
|
-
|
62
|
-
<button type="submit" class="btn btn-primary">Search</button>
|
63
|
-
</form>
|
64
|
-
</div>
|
65
|
-
|
66
|
-
<div class="col-md-10">
|
67
|
-
<table class="table table-sort table-arrows">
|
68
|
-
<thead>
|
69
|
-
<tr>
|
70
|
-
<th>Name</th>
|
71
|
-
<th>Start</th>
|
72
|
-
<th>Kind</th>
|
73
|
-
<th class="numeric-sort">Distance</th>
|
74
|
-
<th>Elapsed time</th>
|
75
|
-
</tr>
|
76
|
-
</thead>
|
77
|
-
<tbody>
|
78
|
-
{% for index, activity in activities %}
|
79
|
-
<tr>
|
80
|
-
<td><a href="{{ url_for('activity.show', id=activity['id']) }}">{{ activity['name'] }}</a></td>
|
81
|
-
<td>
|
82
|
-
{% if activity['start'] is defined %}
|
83
|
-
{{ activity['start']|dt }}
|
84
|
-
{% endif %}
|
85
|
-
</td>
|
86
|
-
<td>{{ activity['kind'] }}</td>
|
87
|
-
<td>{{ '%.1f' % activity["distance_km"] }} km</td>
|
88
|
-
<td>{{ activity.elapsed_time|td }}</td>
|
89
|
-
</tr>
|
90
|
-
{% endfor %}
|
91
|
-
</tbody>
|
92
|
-
</table>
|
93
|
-
</div>
|
8
|
+
<div class="mb-3">
|
9
|
+
{{ search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) }}
|
94
10
|
</div>
|
11
|
+
|
12
|
+
<table class="table table-sort table-arrows">
|
13
|
+
<thead>
|
14
|
+
<tr>
|
15
|
+
<th>Name</th>
|
16
|
+
<th>Date</th>
|
17
|
+
<th class="numeric-sort">Distance</th>
|
18
|
+
<th>Elapsed time</th>
|
19
|
+
<th>Speed / km/h</th>
|
20
|
+
<th>Equipment</th>
|
21
|
+
<th>Kind</th>
|
22
|
+
</tr>
|
23
|
+
</thead>
|
24
|
+
<tbody>
|
25
|
+
{% for index, activity in activities %}
|
26
|
+
<tr>
|
27
|
+
<td><a href="{{ url_for('activity.show', id=activity['id']) }}">{{ activity['name'] }}</a></td>
|
28
|
+
<td>
|
29
|
+
{% if activity['start'] is defined %}
|
30
|
+
{{ activity['start']|dt }}
|
31
|
+
{% endif %}
|
32
|
+
</td>
|
33
|
+
<td>{{ '%.1f' % activity["distance_km"] }} km</td>
|
34
|
+
<td>{{ activity.elapsed_time|td }}</td>
|
35
|
+
<td>{{ activity.average_speed_moving_kmh|round(1) }}</td>
|
36
|
+
<td>{{ activity["equipment"] }}</td>
|
37
|
+
<td>{{ activity['kind'] }}</td>
|
38
|
+
</tr>
|
39
|
+
{% endfor %}
|
40
|
+
</tbody>
|
41
|
+
</table>
|
95
42
|
{% endblock %}
|
@@ -0,0 +1,116 @@
|
|
1
|
+
{% macro search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) %}
|
2
|
+
<div class="accordion" id="search_form_accordion">
|
3
|
+
<div class="accordion-item">
|
4
|
+
<h2 class="accordion-header">
|
5
|
+
<button class="accordion-button {{ '' if query.active else 'collapsed' }}" type="button"
|
6
|
+
data-bs-toggle="collapse" data-bs-target="#search_form" aria-expanded="true"
|
7
|
+
aria-controls="search_form">
|
8
|
+
Activity Filter
|
9
|
+
</button>
|
10
|
+
</h2>
|
11
|
+
<div id="search_form" class="accordion-collapse collapse {{ 'show' if query.active else '' }}"
|
12
|
+
data-bs-parent="#search_form_accordion">
|
13
|
+
<div class="accordion-body">
|
14
|
+
<div class="row">
|
15
|
+
<div class="col-8">
|
16
|
+
<form>
|
17
|
+
<div class="row g-3">
|
18
|
+
<div class="col-12">
|
19
|
+
<label for="name" class="form-label">Name</label>
|
20
|
+
<input type="text" class="form-control" id="name" name="name"
|
21
|
+
value="{{ query.name }}">
|
22
|
+
|
23
|
+
<div class="form-check">
|
24
|
+
<input class="form-check-input" type="checkbox" name="name_case_sensitive"
|
25
|
+
value="true" id="name_case_sensitive" {% if query.name_case_sensitive %}
|
26
|
+
checked {% endif %}>
|
27
|
+
<label class="form-check-label" for="name_case_sensitive">
|
28
|
+
Case sensitive
|
29
|
+
</label>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<div class="col-6">
|
34
|
+
<label for="start_begin" class="form-label">After</label>
|
35
|
+
<input type="date" class="form-control" id="start_begin" name="start_begin"
|
36
|
+
value="{{ query.start_begin }}">
|
37
|
+
</div>
|
38
|
+
<div class="col-6">
|
39
|
+
<label for="start_end" class="form-label">Until</label>
|
40
|
+
<input type="date" class="form-control" id="start_end" name="start_end"
|
41
|
+
value="{{ query.start_end }}">
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div class="col-12">
|
45
|
+
<label for="" class="form-label">Kind</label>
|
46
|
+
<div class="form-control">
|
47
|
+
{% for kind in kinds_avail %}
|
48
|
+
<div class="form-check form-check-inline">
|
49
|
+
<input class="form-check-input" type="checkbox" name="kind"
|
50
|
+
value="{{ kind }}" id="kind_{{ kind }}" {% if kind in query.kind %}
|
51
|
+
checked {% endif %}>
|
52
|
+
<label class="form-check-label" for="kind_{{ kind }}">
|
53
|
+
{{ kind }}
|
54
|
+
</label>
|
55
|
+
</div>
|
56
|
+
{% endfor %}
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
|
60
|
+
<div class="col-12">
|
61
|
+
<label for="" class="form-label">Equipment</label>
|
62
|
+
<div class="form-control">
|
63
|
+
{% for equipment in equipments_avail %}
|
64
|
+
<div class="form-check form-check-inline">
|
65
|
+
<input class="form-check-input" type="checkbox" name="equipment"
|
66
|
+
value="{{ equipment }}" id="equipment_{{ equipment }}" {% if equipment
|
67
|
+
in query.equipment %} checked {% endif %}>
|
68
|
+
<label class="form-check-label" for="equipment_{{ equipment }}">
|
69
|
+
{{ equipment }}
|
70
|
+
</label>
|
71
|
+
</div>
|
72
|
+
{% endfor %}
|
73
|
+
</div>
|
74
|
+
</div>
|
75
|
+
|
76
|
+
<div class="col-6">
|
77
|
+
<button type="submit" class="btn btn-primary">Filter</button>
|
78
|
+
</div>
|
79
|
+
<div class="col-6">
|
80
|
+
<a class="btn btn-danger" href="?">Reset</a>
|
81
|
+
</div>
|
82
|
+
</div>
|
83
|
+
</form>
|
84
|
+
</div>
|
85
|
+
<div class="col-4">
|
86
|
+
<h5 class="mb-3">Favorite queries</h5>
|
87
|
+
<ul class="mb-3">
|
88
|
+
{% for description, url_parameters in search_query_favorites %}
|
89
|
+
{{ _show_search_query(description, url_parameters, True, request_url) }}
|
90
|
+
{% endfor %}
|
91
|
+
</ul>
|
92
|
+
|
93
|
+
<h5 class="mb-3">Last queries</h5>
|
94
|
+
<ol class="mb-3">
|
95
|
+
{% for description, url_parameters in search_query_last %}
|
96
|
+
{{ _show_search_query(description, url_parameters, False, request_url) }}
|
97
|
+
{% endfor %}
|
98
|
+
</ol>
|
99
|
+
</div>
|
100
|
+
</div>
|
101
|
+
</div>
|
102
|
+
</div>
|
103
|
+
</div>
|
104
|
+
</div>
|
105
|
+
{% endmacro %}
|
106
|
+
|
107
|
+
{% macro _show_search_query(description, url_parameters, is_favorite, request_url) %}
|
108
|
+
<li>
|
109
|
+
<a href="?{{ url_parameters }}">{{ description }}</a>
|
110
|
+
{% if is_favorite %}
|
111
|
+
<a href="{{ url_for('search.delete_search_query') }}?{{ url_parameters }}&redirect={{ request_url }}">🗑️</a>
|
112
|
+
{% else %}
|
113
|
+
<a href="{{ url_for('search.save_search_query') }}?{{ url_parameters }}&redirect={{ request_url }}">💾</a>
|
114
|
+
{% endif %}
|
115
|
+
</li>
|
116
|
+
{% endmacro %}
|
@@ -1,10 +1,14 @@
|
|
1
1
|
{% extends "page.html.j2" %}
|
2
|
+
{% from "search_form.html.j2" import search_form %}
|
2
3
|
|
3
4
|
{% block container %}
|
4
5
|
|
5
|
-
|
6
6
|
<h1>Summary Statistics</h1>
|
7
7
|
|
8
|
+
<div class="mb-3">
|
9
|
+
{{ search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) }}
|
10
|
+
</div>
|
11
|
+
|
8
12
|
<h2>Distances</h2>
|
9
13
|
|
10
14
|
<p>This is your weekly distance for the past rolling year, split by activity kind.</p>
|
{geo_activity_playground-0.36.2.dist-info → geo_activity_playground-0.38.0.dist-info}/RECORD
RENAMED
@@ -1,16 +1,20 @@
|
|
1
1
|
geo_activity_playground/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
geo_activity_playground/__main__.py,sha256=vFKB0Jjk8ImDHqok6Fddb5CRWHEnxyn5r4Zs0A1EsCQ,4585
|
3
3
|
geo_activity_playground/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
-
geo_activity_playground/core/activities.py,sha256=
|
5
|
-
geo_activity_playground/core/config.py,sha256=
|
4
|
+
geo_activity_playground/core/activities.py,sha256=hIn11bsriNhcalWRWPU8SYqM7cKEFI-n9voqSyT7Tdk,7695
|
5
|
+
geo_activity_playground/core/config.py,sha256=oo0pSoBZVU__U81OzW2Qdw8C5Tq_pO7CWibA4CugZmc,5296
|
6
6
|
geo_activity_playground/core/coordinates.py,sha256=tDfr9mlXhK6E_MMIJ0vYWVCoH0Lq8uyuaqUgaa8i0jg,966
|
7
|
-
geo_activity_playground/core/enrichment.py,sha256=
|
7
|
+
geo_activity_playground/core/enrichment.py,sha256=od2H0W-Ubw1lhVeB_qTbFMuxN7jU5Gkb0eHH7QpZkTA,8186
|
8
8
|
geo_activity_playground/core/heart_rate.py,sha256=IwMt58TpjOYqpAxtsj07zP2ttpN_J3GZeiv-qGhYyJc,1598
|
9
|
+
geo_activity_playground/core/meta_search.py,sha256=naErjAC7ZCFhOF6d492kbegZxCdzbpGcJvjQLJTE4xE,5016
|
9
10
|
geo_activity_playground/core/paths.py,sha256=RBeUi38riP_msTGPy1TsPRNiblzE-lFivaJSLULE8b0,2503
|
10
11
|
geo_activity_playground/core/privacy_zones.py,sha256=4TumHsVUN1uW6RG3ArqTXDykPVipF98DCxVBe7YNdO8,512
|
11
12
|
geo_activity_playground/core/raster_map.py,sha256=RrbpotWIIT1friSewSxRczk4FY6v8ofOO6kO1ERMWvM,6962
|
12
13
|
geo_activity_playground/core/similarity.py,sha256=Jo8jRViuORCxdIGvyaflgsQhwu9S_jn10a450FRL18A,3159
|
14
|
+
geo_activity_playground/core/summary_stats.py,sha256=v5FtWnE1imDF5axI6asVN55wCrlD73oZ6lvqzxsTN2c,1006
|
13
15
|
geo_activity_playground/core/tasks.py,sha256=aMDBWJqp6ek2ao6G6Xa8GOSZbcQqXoWL74SGRowRPIk,2942
|
16
|
+
geo_activity_playground/core/test_meta_search.py,sha256=kEFOphGfbWT0hW-4ivZHGEq3BTL01ODCxCK_KUSP61w,3175
|
17
|
+
geo_activity_playground/core/test_summary_stats.py,sha256=OU2Epm1QFsEDYdWfCy5QUeFXqoIeG8Sk1tX8LbFj8Xk,3109
|
14
18
|
geo_activity_playground/core/test_tiles.py,sha256=zce1FxNfsSpOQt66jMehdQRVoNdl-oiFydx6iVBHZXM,764
|
15
19
|
geo_activity_playground/core/test_time_conversion.py,sha256=Sh6nZA3uCTOdZTZa3yOijtR0m74QtZu2mcWXsDNnyQI,984
|
16
20
|
geo_activity_playground/core/tiles.py,sha256=lV6X1Uc9XQecu2LALIvxpnMcLsVtWx7JczJ5a_S1eZE,2139
|
@@ -32,13 +36,13 @@ geo_activity_playground/importers/test_strava_api.py,sha256=4vX7wDr1a9aRh8myxNrI
|
|
32
36
|
geo_activity_playground/webui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
37
|
geo_activity_playground/webui/activity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
38
|
geo_activity_playground/webui/activity/blueprint.py,sha256=J2f6zzBtwkrem51WDakLXKahVcOxMT2JKbbFgu0VFws,3914
|
35
|
-
geo_activity_playground/webui/activity/controller.py,sha256=
|
36
|
-
geo_activity_playground/webui/activity/templates/activity/day.html.j2,sha256=
|
39
|
+
geo_activity_playground/webui/activity/controller.py,sha256=2nVbcVUc7BTccnfJzzw_XcgwyGte_7phUOrmZxF__s4,20159
|
40
|
+
geo_activity_playground/webui/activity/templates/activity/day.html.j2,sha256=tFRiYj61iJyCwEasIezoJeSOTpRvHY-58nlaalS8PPA,2587
|
37
41
|
geo_activity_playground/webui/activity/templates/activity/edit.html.j2,sha256=ckcTTxcQOhmvvAGNTEOtWCUG4LhvO4HfQImlIa5qKs8,1530
|
38
42
|
geo_activity_playground/webui/activity/templates/activity/lines.html.j2,sha256=_ZDg1ruW-9UMJfOudy1-uY_-IcSSaagq7tPCih5Bb8g,1079
|
39
|
-
geo_activity_playground/webui/activity/templates/activity/name.html.j2,sha256=
|
40
|
-
geo_activity_playground/webui/activity/templates/activity/show.html.j2,sha256=
|
41
|
-
geo_activity_playground/webui/app.py,sha256=
|
43
|
+
geo_activity_playground/webui/activity/templates/activity/name.html.j2,sha256=H2v1H92T-iIbA_tYnYP59bgXAY6HpgG368eCF7NDboY,2557
|
44
|
+
geo_activity_playground/webui/activity/templates/activity/show.html.j2,sha256=Vc42G_rQOna13Qi_opVPbjVLB05PrY1xAdt9MFscbvI,7709
|
45
|
+
geo_activity_playground/webui/app.py,sha256=K5PT6jzeG7cWle5cdWEvha7XmQJPACnHbhKSZlgSynA,6173
|
42
46
|
geo_activity_playground/webui/auth_blueprint.py,sha256=sERpBU6cXdBuVjMMiRQBGJMibFZCfrUXMPj4ukzd_Ug,783
|
43
47
|
geo_activity_playground/webui/authenticator.py,sha256=k278OEVuOfAmTGT4F2X4pqSTwwkK_FA87EIhAeysEqc,1416
|
44
48
|
geo_activity_playground/webui/calendar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -46,22 +50,20 @@ geo_activity_playground/webui/calendar/blueprint.py,sha256=Kjyx9lkJoM5tL8vNba0Y7
|
|
46
50
|
geo_activity_playground/webui/calendar/controller.py,sha256=QpSAkR2s1sbLSu6P_fNNTccgGglOzEH2PIv1XwKxeVY,2778
|
47
51
|
geo_activity_playground/webui/calendar/templates/calendar/index.html.j2,sha256=xoR6R4cUgTQNRHQv3m3f4Bc-yCjJEsJj5d4_CWlJsRo,1427
|
48
52
|
geo_activity_playground/webui/calendar/templates/calendar/month.html.j2,sha256=sRIiNo_Rp9CHary6e-lnpKJKOuAonoDEBvKMxzbTLQE,1802
|
49
|
-
geo_activity_playground/webui/eddington_blueprint.py,sha256=
|
53
|
+
geo_activity_playground/webui/eddington_blueprint.py,sha256=1MuYSILMlkq3Xc0qgrIaeT-aCIic3jazYFek3LDbSqU,6876
|
50
54
|
geo_activity_playground/webui/entry_controller.py,sha256=McxbyouKWHJ3a2R9agPazZoG7VHiFO1RvnkBr08dMH8,2168
|
51
|
-
geo_activity_playground/webui/
|
52
|
-
geo_activity_playground/webui/equipment/blueprint.py,sha256=kJhCSdakke_UhT2RIP-fMoAMaC1oFttRoCPeiAIaB6g,491
|
53
|
-
geo_activity_playground/webui/equipment/controller.py,sha256=lMivui3EBUnkYZf9Lgv1kHZ0c7IxRAza-ox8YOz3ONY,4079
|
54
|
-
geo_activity_playground/webui/equipment/templates/equipment/index.html.j2,sha256=fvRaDbCuiSZ8AzJTpu1dk8FTAGZ2yfsLhprtVYHFZWo,1802
|
55
|
+
geo_activity_playground/webui/equipment_blueprint.py,sha256=wyH-kvJxx9TB-Tx4iPBB02ubes5T-efrBBenbmEKSRU,3509
|
55
56
|
geo_activity_playground/webui/explorer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
|
-
geo_activity_playground/webui/explorer/blueprint.py,sha256=
|
57
|
+
geo_activity_playground/webui/explorer/blueprint.py,sha256=GJcNgtkR0Ya15lsc6896wNXQEiTL36Ltd-8w28iecEA,2249
|
57
58
|
geo_activity_playground/webui/explorer/controller.py,sha256=pIzWh0TpLJgKQZlS325-QT7nA1q9ms7fRqQIp24PNfo,11705
|
58
59
|
geo_activity_playground/webui/explorer/templates/explorer/index.html.j2,sha256=3t9ikAF6oMvEaVlS3Kb1tj9ngomIQlatzqPnqVsEDKA,6908
|
59
60
|
geo_activity_playground/webui/heatmap/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
|
-
geo_activity_playground/webui/heatmap/blueprint.py,sha256
|
61
|
-
geo_activity_playground/webui/heatmap/heatmap_controller.py,sha256=
|
62
|
-
geo_activity_playground/webui/heatmap/templates/heatmap/index.html.j2,sha256=
|
61
|
+
geo_activity_playground/webui/heatmap/blueprint.py,sha256=UndzdkSBS_mvpDYDxlotkKxi6sP3hECXz3cb0H4Kdbk,1966
|
62
|
+
geo_activity_playground/webui/heatmap/heatmap_controller.py,sha256=rKhPUEHQDY0ZoSY0CHywJLRbJThKuSp6ywkevlsBHcM,8591
|
63
|
+
geo_activity_playground/webui/heatmap/templates/heatmap/index.html.j2,sha256=kTVvEt-GmSNebDlVMa6zwyIuP0mJcZQFuqj-IY8JV5U,1359
|
63
64
|
geo_activity_playground/webui/plot_util.py,sha256=pTTQoqOCkLVjkgOit7mbry28kMruZIL8amZozSzEpxQ,283
|
64
|
-
geo_activity_playground/webui/search_blueprint.py,sha256=
|
65
|
+
geo_activity_playground/webui/search_blueprint.py,sha256=6YELyCMRQ5uyh67mf11OjAFXPaCg_Iw1t1Bvci4mALI,2567
|
66
|
+
geo_activity_playground/webui/search_util.py,sha256=jMY7DrJQVa9e8x7POE5QsReZL-SIyYaWvjUGB_R6kW0,2326
|
65
67
|
geo_activity_playground/webui/settings/blueprint.py,sha256=l5H9kxjwMpqPQoF8moIp3r6oU-RQmuWr38yiHUZYU00,9391
|
66
68
|
geo_activity_playground/webui/settings/controller.py,sha256=MIZVBfoGNvmJnB_ECV_x5eH2i6gDZvkWSQ4PcSKyLKs,9170
|
67
69
|
geo_activity_playground/webui/settings/templates/settings/admin-password.html.j2,sha256=VYwddpObD1RpeTH5Dm4y7VtmT7kwURDCIjxyzJeq08c,495
|
@@ -106,20 +108,22 @@ geo_activity_playground/webui/static/vega-lite@4,sha256=roXmcY9bUF91uB9V-eSEUHEg
|
|
106
108
|
geo_activity_playground/webui/static/vega@5,sha256=5DLHUaY2P0ph2mKSDMfX69E88J2ClJ-PSGJI-Acdw84,514536
|
107
109
|
geo_activity_playground/webui/static/web-app-manifest-192x192.png,sha256=eEImN6iWfSv-EnSNPL5WbX84PKakse_8VZMBPWWye3o,13582
|
108
110
|
geo_activity_playground/webui/static/web-app-manifest-512x512.png,sha256=vU9oQ4HnQerFDZVzcAT9twj4_Doc6_9v9wVvoRI-f_E,48318
|
109
|
-
geo_activity_playground/webui/summary_blueprint.py,sha256=
|
111
|
+
geo_activity_playground/webui/summary_blueprint.py,sha256=1d75wbw3_X5SsmKWV9HRzS7Z9uCtt9MHnp1r6wKa7PU,9535
|
110
112
|
geo_activity_playground/webui/templates/auth/index.html.j2,sha256=ILQ5HvTEYc3OrtOAIFt1VrqWorVD70V9DC342znmP70,579
|
111
|
-
geo_activity_playground/webui/templates/eddington/index.html.j2,sha256=
|
113
|
+
geo_activity_playground/webui/templates/eddington/index.html.j2,sha256=_3oxzHhC_s9ATtvGmuIWKqvjIQYJNvdCxmYnOyN9QnY,3716
|
114
|
+
geo_activity_playground/webui/templates/equipment/index.html.j2,sha256=4FsMPjse9iZsWZiwD9At95CdUa_pVf2g7UugygOH8vk,1672
|
112
115
|
geo_activity_playground/webui/templates/home.html.j2,sha256=IdCqI_LLcYrpUjjCO-tbXR4s05XYrPOateiJ4idF3bo,2202
|
113
116
|
geo_activity_playground/webui/templates/page.html.j2,sha256=CHRvO2HGHjBnMNffX7a-C-pm2544wErKOcW66lghKos,10785
|
114
|
-
geo_activity_playground/webui/templates/search/index.html.j2,sha256=
|
117
|
+
geo_activity_playground/webui/templates/search/index.html.j2,sha256=_kxTgsdbT8o-4ryW0pvyWE7a-rOs7xzGUpdSPp8Q1is,1320
|
118
|
+
geo_activity_playground/webui/templates/search_form.html.j2,sha256=TG9xIql0HnhsXtbHZxl3GLBt6cGYjA8jPeBq11syQ3A,6512
|
115
119
|
geo_activity_playground/webui/templates/square_planner/index.html.j2,sha256=xFbYBQtkOl3U4WGkvIuU_5uazGHn8ObvQfNgPGq0Gqg,6469
|
116
|
-
geo_activity_playground/webui/templates/summary/index.html.j2,sha256=
|
120
|
+
geo_activity_playground/webui/templates/summary/index.html.j2,sha256=bM89LdumssVvmuI0EeI8mnzMYxSzNjWY_XWfzn-f6nI,5377
|
117
121
|
geo_activity_playground/webui/templates/upload/index.html.j2,sha256=I1Ix8tDS3YBdi-HdaNfjkzYXVVCjfUTe5PFTnap1ydc,775
|
118
122
|
geo_activity_playground/webui/templates/upload/reload.html.j2,sha256=YZWX5eDeNyqKJdQAywDBcU8DZBm22rRBbZqFjrFrCvQ,556
|
119
123
|
geo_activity_playground/webui/tile_blueprint.py,sha256=QU8YRjhMf-lhPJGqrCjV49QBX0ATgTny96GYhqJwwyI,1755
|
120
124
|
geo_activity_playground/webui/upload_blueprint.py,sha256=Ha3H5Dsl6YS6YYmFouXamU8viEpLIj1YIE9XJVCiakY,4368
|
121
|
-
geo_activity_playground-0.
|
122
|
-
geo_activity_playground-0.
|
123
|
-
geo_activity_playground-0.
|
124
|
-
geo_activity_playground-0.
|
125
|
-
geo_activity_playground-0.
|
125
|
+
geo_activity_playground-0.38.0.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
|
126
|
+
geo_activity_playground-0.38.0.dist-info/METADATA,sha256=Mlj1jwAXTRf43R9CFqymICnZVmTnc0wpaW_b7rSHo6k,1573
|
127
|
+
geo_activity_playground-0.38.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
128
|
+
geo_activity_playground-0.38.0.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
|
129
|
+
geo_activity_playground-0.38.0.dist-info/RECORD,,
|
File without changes
|
@@ -1,16 +0,0 @@
|
|
1
|
-
from flask import Blueprint
|
2
|
-
from flask import render_template
|
3
|
-
|
4
|
-
from geo_activity_playground.webui.equipment.controller import EquipmentController
|
5
|
-
|
6
|
-
|
7
|
-
def make_equipment_blueprint(equipment_controller: EquipmentController) -> Blueprint:
|
8
|
-
blueprint = Blueprint("equipment", __name__, template_folder="templates")
|
9
|
-
|
10
|
-
@blueprint.route("/")
|
11
|
-
def index():
|
12
|
-
return render_template(
|
13
|
-
"equipment/index.html.j2", **equipment_controller.render()
|
14
|
-
)
|
15
|
-
|
16
|
-
return blueprint
|
{geo_activity_playground-0.36.2.dist-info → geo_activity_playground-0.38.0.dist-info}/LICENSE
RENAMED
File without changes
|
File without changes
|
File without changes
|