Private
Public Access
1
0

add C2 World Class Performance model

This commit is contained in:
Sander Roosendaal
2017-12-12 16:44:33 +01:00
parent 2bed3207a0
commit 32e7696e92
2 changed files with 77 additions and 1 deletions

View File

@@ -21,6 +21,8 @@ from sqlalchemy import create_engine
import sqlalchemy as sa
from sqlite3 import OperationalError
from django.utils import timezone
import pandas as pd
from dateutil import parser
import datetime
from django.core.exceptions import ValidationError
from rowers.rows import validate_file_extension
@@ -149,6 +151,75 @@ class PowerZonesField(models.TextField):
value = self._get_val_from_obj(obj)
return self.get_deb_prep_value(value)
# Age records
def save_agegroup(df,weightcategory,sex):
for id,row in df.iterrows():
agemin = int(row['Age2'])
agemax = int(row['Age3'])
duration = row['Time']
power = int(row['Power'])
season = int(row['Season'])
name = row['Name']
record = C2WorldClassAgePerformance(
agemin = agemin,
agemax = agemax,
weightcategory = weightcategory,
sex=sex,
distance = 2000,
duration = duration,
power = power,
season = season,
name = name,
)
record.save()
print record
def make_records(readfile):
xls = pd.ExcelFile(readfile)
female_df = xls.parse('Female')
female_lw_df = xls.parse('Female LW')
male_df = xls.parse('Male')
male_lw_df = xls.parse('Male LW')
save_agegroup(female_df,'hwt','female')
save_agegroup(male_df,'hwt','male')
save_agegroup(female_lw_df,'lwt','female')
save_agegroup(female_lw_df,'lwt','male')
class C2WorldClassAgePerformance(models.Model):
weightcategories = (
('hwt','heavy-weight'),
('lwt','light-weight'),
)
sexcategories = (
('male','male'),
('female','female'),
)
weightcategory = models.CharField(default="hwt",
max_length=30,
choices=weightcategories)
sex = models.CharField(default="female",
max_length=30,
choices=sexcategories)
agemin = models.IntegerField(default=19,verbose_name="Minimum Age")
agemax = models.IntegerField(default=29,verbose_name="Maximum Age")
distance = models.IntegerField(default=2000)
name = models.CharField(max_length=200,blank=True)
duration = models.TimeField(default=1,blank=True)
season = models.IntegerField(default=2013)
power = models.IntegerField(default=200)
class Meta:
unique_together = ('agemin','agemax','sex','weightcategory','distance')
def __unicode__(self):
return self.name+':'+str(self.agemin)+'-'+str(self.agemax)+' ('+str(self.season)+')'
# For future Team functionality
class Team(models.Model):
choices = (