podusowski / spartan Goto Github PK
View Code? Open in Web Editor NEWSpartan is a sports tracker for strength and GPS based activities.
Home Page: http://91.203.132.230/
Spartan is a sports tracker for strength and GPS based activities.
Home Page: http://91.203.132.230/
after hovering somewhere on chart
use some cool photos as page background
To implement this, local_statistics api must support:
Paces can be fixed with 30sec/min ranges, for HR, zones configuration will be needed.
In strength workout, make some sound after each 30s.
something like start-stop button
[Tue Jul 25 09:35:06.016325 2017] [wsgi:error] [pid 16676:tid 139925326391040] ERROR:django.request:Internal Server Error: /dashboard
[Tue Jul 25 09:35:06.016356 2017] [wsgi:error] [pid 16676:tid 139925326391040] Traceback (most recent call last):
[Tue Jul 25 09:35:06.016360 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/core/handlers/exception.py", line 41, in inner
[Tue Jul 25 09:35:06.016364 2017] [wsgi:error] [pid 16676:tid 139925326391040] response = get_response(request)
[Tue Jul 25 09:35:06.016367 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
[Tue Jul 25 09:35:06.016370 2017] [wsgi:error] [pid 16676:tid 139925326391040] response = self._get_response(request)
[Tue Jul 25 09:35:06.016373 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/core/handlers/base.py", line 187, in _get_response
[Tue Jul 25 09:35:06.016376 2017] [wsgi:error] [pid 16676:tid 139925326391040] response = self.process_exception_by_middleware(e, request)
[Tue Jul 25 09:35:06.016392 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/core/handlers/base.py", line 185, in _get_response
[Tue Jul 25 09:35:06.016396 2017] [wsgi:error] [pid 16676:tid 139925326391040] response = wrapped_callback(request, *callback_args, **callback_kwargs)
[Tue Jul 25 09:35:06.016399 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
[Tue Jul 25 09:35:06.016402 2017] [wsgi:error] [pid 16676:tid 139925326391040] return view_func(request, *args, **kwargs)
[Tue Jul 25 09:35:06.016405 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/training/views.py", line 53, in dashboard
[Tue Jul 25 09:35:06.016408 2017] [wsgi:error] [pid 16676:tid 139925326391040] 'goals': goals})
[Tue Jul 25 09:35:06.016411 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/shortcuts.py", line 30, in render
[Tue Jul 25 09:35:06.016414 2017] [wsgi:error] [pid 16676:tid 139925326391040] content = loader.render_to_string(template_name, context, request, using=using)
[Tue Jul 25 09:35:06.016416 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/loader.py", line 68, in render_to_string
[Tue Jul 25 09:35:06.016419 2017] [wsgi:error] [pid 16676:tid 139925326391040] return template.render(context, request)
[Tue Jul 25 09:35:06.016422 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/backends/django.py", line 66, in render
[Tue Jul 25 09:35:06.016425 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.template.render(context)
[Tue Jul 25 09:35:06.016427 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 207, in render
[Tue Jul 25 09:35:06.016430 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self._render(context)
[Tue Jul 25 09:35:06.016433 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 199, in _render
[Tue Jul 25 09:35:06.016435 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.nodelist.render(context)
[Tue Jul 25 09:35:06.016438 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 990, in render
[Tue Jul 25 09:35:06.016441 2017] [wsgi:error] [pid 16676:tid 139925326391040] bit = node.render_annotated(context)
[Tue Jul 25 09:35:06.016444 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 957, in render_annotated
[Tue Jul 25 09:35:06.016446 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.render(context)
[Tue Jul 25 09:35:06.016449 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/loader_tags.py", line 177, in render
[Tue Jul 25 09:35:06.016452 2017] [wsgi:error] [pid 16676:tid 139925326391040] return compiled_parent._render(context)
[Tue Jul 25 09:35:06.016454 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 199, in _render
[Tue Jul 25 09:35:06.016457 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.nodelist.render(context)
[Tue Jul 25 09:35:06.016460 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 990, in render
[Tue Jul 25 09:35:06.016462 2017] [wsgi:error] [pid 16676:tid 139925326391040] bit = node.render_annotated(context)
[Tue Jul 25 09:35:06.016465 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 957, in render_annotated
[Tue Jul 25 09:35:06.016471 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.render(context)
[Tue Jul 25 09:35:06.016474 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/loader_tags.py", line 72, in render
[Tue Jul 25 09:35:06.016477 2017] [wsgi:error] [pid 16676:tid 139925326391040] result = block.nodelist.render(context)
[Tue Jul 25 09:35:06.016479 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 990, in render
[Tue Jul 25 09:35:06.016482 2017] [wsgi:error] [pid 16676:tid 139925326391040] bit = node.render_annotated(context)
[Tue Jul 25 09:35:06.016485 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 957, in render_annotated
[Tue Jul 25 09:35:06.016487 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.render(context)
[Tue Jul 25 09:35:06.016490 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/defaulttags.py", line 216, in render
[Tue Jul 25 09:35:06.016493 2017] [wsgi:error] [pid 16676:tid 139925326391040] nodelist.append(node.render_annotated(context))
[Tue Jul 25 09:35:06.016496 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 957, in render_annotated
[Tue Jul 25 09:35:06.016498 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.render(context)
[Tue Jul 25 09:35:06.016501 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/defaulttags.py", line 216, in render
[Tue Jul 25 09:35:06.016504 2017] [wsgi:error] [pid 16676:tid 139925326391040] nodelist.append(node.render_annotated(context))
[Tue Jul 25 09:35:06.016506 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 957, in render_annotated
[Tue Jul 25 09:35:06.016509 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.render(context)
[Tue Jul 25 09:35:06.016512 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/defaulttags.py", line 216, in render
[Tue Jul 25 09:35:06.016515 2017] [wsgi:error] [pid 16676:tid 139925326391040] nodelist.append(node.render_annotated(context))
[Tue Jul 25 09:35:06.016517 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 957, in render_annotated
[Tue Jul 25 09:35:06.016520 2017] [wsgi:error] [pid 16676:tid 139925326391040] return self.render(context)
[Tue Jul 25 09:35:06.016523 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 1046, in render
[Tue Jul 25 09:35:06.016525 2017] [wsgi:error] [pid 16676:tid 139925326391040] return render_value_in_context(output, context)
[Tue Jul 25 09:35:06.016528 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/template/base.py", line 1024, in render_value_in_context
[Tue Jul 25 09:35:06.016531 2017] [wsgi:error] [pid 16676:tid 139925326391040] value = force_text(value)
[Tue Jul 25 09:35:06.016534 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/env/lib/python3.4/site-packages/django/utils/encoding.py", line 76, in force_text
[Tue Jul 25 09:35:06.016536 2017] [wsgi:error] [pid 16676:tid 139925326391040] s = six.text_type(s)
[Tue Jul 25 09:35:06.016539 2017] [wsgi:error] [pid 16676:tid 139925326391040] File "/var/www/spartan/training/units.py", line 57, in str
[Tue Jul 25 09:35:06.016544 2017] [wsgi:error] [pid 16676:tid 139925326391040] if self.type == Volume.Type.DISTANCE:
[Tue Jul 25 09:35:06.016549 2017] [wsgi:error] [pid 16676:tid 139925326391040] AttributeError: 'Volume' object has no attribute 'type'
Cache explorer hex points to speedup site load.
as in title
Implement i18n.
Traceback:
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/core/handlers/base.py" in _legacy_get_response
249. response = self._get_response(request)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "/home/kasia/Development/spartan/activities/gps/views.py" in synchronize_endomondo_ajax
66. count = endo.synchronize_endomondo(request.user, 10)
File "/home/kasia/Development/spartan/activities/gps/endomondo.py" in synchronize_endomondo
54. if not gps_workout.exists(user,
Exception Type: NameError at /gps/synchronize_endomondo_ajax/
Exception Value: name 'gps_workout' is not defined
now, it is a dict, it should be changed to list of tuple
New page for starting strength workout or importing it from gpx/endomondo. There should be no "start workout" button which adds something to db.
Template error:
In template /home/kasia/Development/spartan/statistics/templates/statistics/workout.html, error at line 7
division by zero 1 : {% extends "statistics/base.html" %}
2 :
3 : {% block content %}
4 :
5 : <section>
6 : <h2>{{ workout.name }}</h2>
7 : {% for name, value in workout.metrics.items %}
8 : <dl class="metric-long">
9 : <dt>{{ name }}</dt>
10 : <dd>{{ value }}</dd>
11 : </dl>
12 : {% endfor %}
13 : </section>
14 :
15 : <section>
16 : <h2>goal</h2>
17 : {% if goal %}
Traceback:
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/core/handlers/base.py" in _legacy_get_response
249. response = self._get_response(request)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/home/kasia/Development/spartan/statistics/views.py" in workout
22. return render(request, 'statistics/workout.html', {'workout': workout, 'goal': goal})
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/shortcuts.py" in render
30. content = loader.render_to_string(template_name, context, request, using=using)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/loader.py" in render_to_string
68. return template.render(context, request)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/backends/django.py" in render
66. return self.template.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render
208. return self._render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/loader_tags.py" in render
174. return compiled_parent._render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/loader_tags.py" in render
174. return compiled_parent._render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in _render
199. return self.nodelist.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/loader_tags.py" in render
70. result = block.nodelist.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/defaulttags.py" in render
159. values = self.sequence.resolve(context, True)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in resolve
711. obj = self.var.resolve(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in resolve
852. value = self._resolve_lookup(context)
File "/home/kasia/Development/spartan/env/lib/python3.5/site-packages/django/template/base.py" in _resolve_lookup
915. current = current()
File "/home/kasia/Development/spartan/statistics/statistics.py" in metrics
79. result.update(app_statistics.workout(self.user, self.name))
File "/home/kasia/Development/spartan/activities/strength/local_statistics.py" in workout
26. ('average reps per series', round(reps / series)),
Exception Type: ZeroDivisionError at /statistics/workout/ef
Exception Value: division by zero
this function should remove last reps or excercise
current coverage provider shows BS, just find another one
eg bike
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.