wger-project / wger Goto Github PK
View Code? Open in Web Editor NEWSelf hosted FLOSS fitness/workout, nutrition and weight tracker
Home Page: https://wger.de
License: GNU Affero General Public License v3.0
Self hosted FLOSS fitness/workout, nutrition and weight tracker
Home Page: https://wger.de
License: GNU Affero General Public License v3.0
It should be possible to tell the workout about the planed weights for the different exercises. It should:
Curls and crunches are swapped in the workout for demo users (at least in the German version)
Use a manager to filter exercises and ingredients by languages. This is more elegant and will save us pain e.g. if/when users can select the languages for items from their preferences.
The exercises in English should also get descriptions, at least very roughtly. They should also get the primary and secundary muscle groups.
It's necessary to check the update path from a pip-installed 1.1.x application to 1.2.
Allow sensible filtering of fields in the REST API, otherwise an error is raised:
http://django-tastypie.readthedocs.org/en/latest/resources.html#basic-filtering
http://stackoverflow.com/questions/12285364/field-does-not-allow-filtering-no-relation-used
The calories calculator doesn't work when the user has no weight entries. In this case the system should create a new entry, as with the BMI calculator.
Check if the templates in manager/templates/settings are used and delete them if not.
The German ingredients list need weight units and should get expanded as much as possible.
There should be a calendar overview where the workout logs are shown in a calendar view. It should also have additional links to directly add logs or view the logs for a day.
Add a BMI calculator. The weight can be read from the weight app, the height can be saved in a new field in the user's profile. Render the result in this diagram or similar.
It should be possible to add an exercise to a workout from the exercise overview or its detail page. A simple pop-up where one can select the workout, day, etc. should be enough.
Administrators should have an overview of user submitted exercises that are pending approval
Many forms are only defined so the corresponding exclude
can be set. This is better done with a editable = False
in the model.
The nutritional plan should have some kind of "wizard" to calculate the basic caloric intake needed by allowing the user to fill in some fields (should be saved to the profile). This makes it much easier to adjust the plan (e.g. +300 kcal over maintenance).
The weight log page should accept entries while the browser is offline, store them in HTML5 Local Storage and send them to the DB when there is an available connection.
User submitted exercises should not appear in the exercises overview or any search till they are approved
Use the messages framework when the success of actions is not always obvious (editing and being redirected to an overview, etc.)
You can add equipment when you create a new exercise, but this information is never used again.
The required equipment for an exercise should be:
In the GPL headers "Workout Manager" should be replaced with "wger Workout Manager" and the logger workout_manager.custom
, renamed to wger.custom
There is currently a great amount of JS directly in the HTML pages, this becomes a bigger maintenance problem with the mobile version, that basically duplicates the templates. Clean this up and move it to the central JS file.
The migrations 0002 in exercises and 0007 in ingredients fail in postgres. The reason for this is that in PostgreSQL you must not update the table and then alter the table schema in one transaction.
Either
db.start_transaction()
if not db.dry_run:
orm.Foo.objects.all().update(bar=baz)
db.commit_transaction()
or do two migrations, one for the table, one for data.
Update app django_browserid to 0.8 (API-Changes!)
In the workout weight log, the entries are not correctly filtered: only the data for the current workout should be shown.
There should be a setting to allow a more granular control of translated exercises and settings. This is specially useful (even necessary) for languages that have not translated all exercises and ingredients: here it should be possible to select which exercises and ingredients are shown. E.g. for language X, show also items in English and language Y.
This should be language wide, but possibly also a user setting.
The current version of tastypie, 0.10.0, has a nasty bug (https://github.com/toastdriven/django-tastypie/issues/1005) that makes the migrations fail with a
TypeError: Item in ``from list'' not a string
The last version is pinned now in the requirements, but should be updated when possible.
The workout manager should be aware of and manage some kind of scheduling options. The most basic would be if a user has a number of workouts that always follow each other (workouts A, B, C, A, B, etc.), but other possibilities should be possible too.
Related to #26 , travis should run the tests with mysql and postgresql as dbs
Now that there are no anonymous users, the banner for demo users should be shown everywhere, otherwise it's confusing why it appears on some pages and not in others. Also it should have a button to create demo data (doing it on the middleware is not performant)
Do some tests to see if django's delete cascade actually deletes all objects, and no entries get orphaned because the foreign key points the other way round
Test the application entering everywhere non-ascii text, there are sill many places with "{0}".format(foobar) instead of u"{0}"...
There should be a "gym mode" for the workouts. Possible workflow:
Features:
Optional:
Some of the old views handle the creation and the edit of objects at the same time. Separate them (probably everything that has a "\w*" in url.py)
The order of the exercises in the weight log form should be the same as in the workout.
The two decimal places make absolutely no sense here. This also seems to be related to the underlying database.
Traceback (most recent call last):
File "/home/rge/www/python-django/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/rge/www/python-django/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/rge/www/wger-patched/wger/manager/views/misc.py", line 93, in dashboard
(current_workout, schedule) = Schedule.objects.get_current_workout(request.user)
File "/home/rge/www/wger-patched/wger/manager/models.py", line 117, in get_current_workout
schedule = Schedule.objects.filter(user=user).get(is_active=True)
File "/home/rge/www/python-django/lib/python2.7/site-packages/django/db/models/query.py", line 407, in get
(self.model._meta.object_name, num))
MultipleObjectsReturned: get() returned more than one Schedule -- it returned 2!
When changing the number of sets in the add set form, the ajax requests to get the formsets are fired immediately. This means that the second might finish before the first, changing randomly the order of the formsets, and that's ugly.
Rather than just allowing submitting exercises, a wiki-style editing of all exercises by all registered users might be better. Investigate if it's feasible/makes sense.
https://github.com/benjaoming/django-wiki
https://github.com/etianen/django-reversion
Make a PDF output that doesn't print a log table, but simply lists the workout structure as in the website.
The views are now split up in different files, there is no need to have e.g. /set/edit_set(). These should be renamed to something like /set/edit()
After sending a new custom exercise I get the following message:
Unhandled Exception
An unhandled exception was thrown by the application.
Add email remainders, e.g. "your workout/schedule will finish in X weeks". This should be configurable by the user.
Ingredients should have at least a creation date. Better would be a last_updated field that displayed the changed made, plain text would be enough here (old value: "foo", new value "bar"):
Have an option to add custom exercises, submitted by the users. After a review by someone with the appropriate rights, they are added to the general database.
The links to the sitemaps in the different languages in robots.txt should be automatically generated
The demo data should create sample data entries for everything, not only workouts and weights.
When users submit an exercise:
This probably happens because the translations for 'weight' and 'date' are not ASCII
Traceback (most recent call last):
File "/home/rge/www/python-django/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/rge/www/python-django/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/rge/www/wger-patched/wger/weight/views.py", line 117, in export_csv
writer.writerow([_('Weight'), _('Date')])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
Would be great to have the possibility to put easier excersises by myself in the system.
I do a lot of my training with a weight west, bodyweight and TRX Band.
Simple bodyweight exercises like push-ups and arnold dips are not in this software.
Bear in mind that there are a lot of versions for squats etc.
Would be nice to have a small file that we could update over git for all and of course for ourself as an option in the excercise dialog.
Thanks in advance
On the exercise detail page, there should be some mark that it was user submitted. If we want to show the username, we need to change the way django_browserid creates them, the default is some kind of UUID.
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.