fix fitnotes for now

This commit is contained in:
James Turk 2015-04-10 15:13:39 -04:00
parent ffafa87cb8
commit d31dbfbb54
7 changed files with 82 additions and 11 deletions

View File

@ -3,11 +3,26 @@ from django.db import transaction
from lifting.models import Lift, Set from lifting.models import Lift, Set
DEFAULT_MAPPING = {
'flat barbell bench press': 'barbell bench press',
'barbell curl': 'barbell curl',
'deadlift': 'barbell deadlift',
'barbell squat': 'barbell squat',
'overhead press': 'standing overhead press',
'barbell front squat': 'barbell front squat',
'barbell row': 'barbell row',
'pull up': 'pull up',
'chin up': 'chin up',
'push up': 'push up',
'dumbbell curl': 'dumbbell curl',
}
def _clean_name(name): def _clean_name(name):
return name.lower() return name.lower()
def import_fitnotes_db(filename, user, fitnotes_to_lift): def import_fitnotes_db(filename, user, fitnotes_to_lift=DEFAULT_MAPPING):
# lift name => id # lift name => id
lift_ids = {_clean_name(l.name): l.id for l in Lift.objects.all()} lift_ids = {_clean_name(l.name): l.id for l in Lift.objects.all()}

View File

@ -3,5 +3,5 @@ from django.conf.urls import url
from . import views from . import views
urlpatterns = [ urlpatterns = [
url(r'^fitnotes/$', views.fitnotes_upload), url(r'^upload/$', views.fitnotes_upload),
] ]

View File

@ -1,6 +1,13 @@
import os
import tempfile
from django import forms
from django.shortcuts import render from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from . import importer from . import importer
class FitnotesUploadForm(forms.Form):
file = forms.FileField()
@login_required @login_required
def fitnotes_upload(request): def fitnotes_upload(request):
if request.method == 'POST': if request.method == 'POST':

View File

@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
def make_bars(apps, schema_editor):
Bar = apps.get_model('inventory', 'Bar')
Bar.objects.bulk_create([
Bar(name="Women's Olympic", weight_kg='15'),
Bar(name="Men's Olympic", weight_kg='20'),
])
def reverse_bars(apps, schema_editor):
Bar = apps.get_model('inventory', 'Bar')
Bar.objects.all().delete()
def make_lifts(apps, schema_editor):
Lift = apps.get_model('inventory', 'Lift')
Lift.objects.bulk_create([
# bodybuilding.com links?
Lift(name="Barbell Bench Press"),
Lift(name="Barbell Curl"),
Lift(name="Barbell Deadlift"),
Lift(name="Barbell Squat"),
Lift(name="Barbell Front Squat"),
Lift(name="Barbell Deadlift"),
Lift(name="Standing Overhead Press"),
Lift(name="Barbell Row"),
Lift(name="Pull Up"),
Lift(name="Chin Up"),
Lift(name="Push Up"),
Lift(name="Dumbbell Curl"),
])
def reverse_lifts(apps, schema_editor):
Lift = apps.get_model('inventory', 'Lift')
Lift.objects.all().delete()
class Migration(migrations.Migration):
dependencies = [
('inventory', '0001_initial'),
]
operations = [
migrations.RunPython(make_bars, reverse_code=reverse_bars),
migrations.RunPython(make_lifts, reverse_code=reverse_lifts),
]

View File

@ -12,7 +12,7 @@ class MassNode(template.Node):
def render(self, context): def render(self, context):
try: try:
weight_kg = self.weight.resolve(context) weight_kg = self.weight.resolve(context)
if context['user'].profile.lifting_units == 'i': if context['user'].lifting_options.lifting_units == 'i':
return to_lb(weight_kg) return to_lb(weight_kg)
else: else:
return remove_exponent(weight_kg) return remove_exponent(weight_kg)
@ -21,7 +21,7 @@ class MassNode(template.Node):
class MassLabelNode(template.Node): class MassLabelNode(template.Node):
def render(self, context): def render(self, context):
return {'i': 'lb', 'm': 'kg'}[context['user'].profile.lifting_units] return {'i': 'lb', 'm': 'kg'}[context['user'].lifting_options.lifting_units]
@register.tag @register.tag

View File

@ -10,7 +10,6 @@ from django.contrib.auth.decorators import login_required
from django.views.generic import dates from django.views.generic import dates
from django.db.models import Count, Max from django.db.models import Count, Max
from . import importers
from .models import Set from .models import Set
from inventory.models import Lift from inventory.models import Lift
@ -83,10 +82,6 @@ def by_lift(request, lift_id):
return render(request, 'lifting/by_lift.html', {'lift': lift, 'sets': sets}) return render(request, 'lifting/by_lift.html', {'lift': lift, 'sets': sets})
class FitnotesUploadForm(forms.Form):
file = forms.FileField()
@login_required @login_required
def edit_profile(request): def edit_profile(request):
form = request.user.profile form = request.user.profile

View File

@ -4,11 +4,11 @@ from django.contrib import admin
from django.conf.urls.static import static from django.conf.urls.static import static
import lifting.urls import lifting.urls
import profiles.urls import fitnotes.urls
urlpatterns = [ urlpatterns = [
url(r'^admin/', include(admin.site.urls)), url(r'^admin/', include(admin.site.urls)),
url(r'^profile/', include(profiles.urls.urlpatterns)),
url(r'^lifting/', include(lifting.urls.urlpatterns)), url(r'^lifting/', include(lifting.urls.urlpatterns)),
url(r'^fitnotes/', include(fitnotes.urls.urlpatterns)),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)