API & Client: adding activity w/o gpx update
This commit is contained in:
parent
faefe18e04
commit
e6d2ad914f
@ -207,7 +207,7 @@ def post_activity_no_gpx(auth_user_id):
|
|||||||
user_id=auth_user_id,
|
user_id=auth_user_id,
|
||||||
sport_id=activity_data.get('sport_id'),
|
sport_id=activity_data.get('sport_id'),
|
||||||
activity_date=datetime.strptime(
|
activity_date=datetime.strptime(
|
||||||
activity_data.get('activity_date'), '%Y-%m-%d'),
|
activity_data.get('activity_date'), '%Y-%m-%d %H:%M'),
|
||||||
duration=timedelta(seconds=activity_data.get('duration'))
|
duration=timedelta(seconds=activity_data.get('duration'))
|
||||||
)
|
)
|
||||||
new_activity.moving = new_activity.duration
|
new_activity.moving = new_activity.duration
|
||||||
|
@ -270,7 +270,7 @@ def test_add_an_activity_no_gpx(app):
|
|||||||
data=json.dumps(dict(
|
data=json.dumps(dict(
|
||||||
sport_id=1,
|
sport_id=1,
|
||||||
duration=3600,
|
duration=3600,
|
||||||
activity_date='2018-05-15',
|
activity_date='2018-05-15 14:05',
|
||||||
distance=10
|
distance=10
|
||||||
)),
|
)),
|
||||||
headers=dict(
|
headers=dict(
|
||||||
@ -285,7 +285,7 @@ def test_add_an_activity_no_gpx(app):
|
|||||||
assert 'created' in data['status']
|
assert 'created' in data['status']
|
||||||
assert len(data['data']['activities']) == 1
|
assert len(data['data']['activities']) == 1
|
||||||
assert 'creation_date' in data['data']['activities'][0]
|
assert 'creation_date' in data['data']['activities'][0]
|
||||||
assert data['data']['activities'][0]['activity_date'] == 'Tue, 15 May 2018 00:00:00 GMT' # noqa
|
assert data['data']['activities'][0]['activity_date'] == 'Tue, 15 May 2018 14:05:00 GMT' # noqa
|
||||||
assert data['data']['activities'][0]['user_id'] == 1
|
assert data['data']['activities'][0]['user_id'] == 1
|
||||||
assert data['data']['activities'][0]['sport_id'] == 1
|
assert data['data']['activities'][0]['sport_id'] == 1
|
||||||
assert data['data']['activities'][0]['duration'] == '1:00:00'
|
assert data['data']['activities'][0]['duration'] == '1:00:00'
|
||||||
|
@ -31,21 +31,35 @@ function FormWithoutGpx (props) {
|
|||||||
<div className="form-group">
|
<div className="form-group">
|
||||||
<label>
|
<label>
|
||||||
Activity Date:
|
Activity Date:
|
||||||
<input
|
<div className="container">
|
||||||
name="activity_date"
|
<div className="row">
|
||||||
className="form-control input-lg"
|
<input
|
||||||
type="date"
|
name="activity_date"
|
||||||
/>
|
className="form-control col-md"
|
||||||
|
required
|
||||||
|
type="date"
|
||||||
|
/>
|
||||||
|
<input
|
||||||
|
name="activity_time"
|
||||||
|
className="form-control col-md"
|
||||||
|
required
|
||||||
|
type="time"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div className="form-group">
|
<div className="form-group">
|
||||||
<label>
|
<label>
|
||||||
Duration:
|
Duration:
|
||||||
<input
|
<input
|
||||||
name="duration"
|
name="duration"
|
||||||
className="form-control input-lg"
|
className="form-control col-xs-4"
|
||||||
type="text"
|
pattern="([0-2][0-3]):([0-5][0-9]):([0-5][0-9])"
|
||||||
/>
|
placeholder="hh:mm:ss"
|
||||||
|
required
|
||||||
|
type="text"
|
||||||
|
/>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div className="form-group">
|
<div className="form-group">
|
||||||
@ -54,6 +68,8 @@ function FormWithoutGpx (props) {
|
|||||||
<input
|
<input
|
||||||
name="distance"
|
name="distance"
|
||||||
className="form-control input-lg"
|
className="form-control input-lg"
|
||||||
|
min={0}
|
||||||
|
required
|
||||||
type="number"
|
type="number"
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
@ -78,18 +94,18 @@ export default connect(
|
|||||||
() => ({ }),
|
() => ({ }),
|
||||||
dispatch => ({
|
dispatch => ({
|
||||||
onAddSport: e => {
|
onAddSport: e => {
|
||||||
const data = [].slice
|
const d = e.target.form.duration.value.split(':')
|
||||||
.call(e.target.form.elements)
|
const duration = +d[0] * 60 * 60 + +d[1] * 60 + +d[2]
|
||||||
.reduce(function(map, obj) {
|
|
||||||
if (obj.name) {
|
const activityDate = `${e.target.form.activity_date.value
|
||||||
if (obj.name === 'duration' || obj.name === 'distance') {
|
} ${ e.target.form.activity_time.value}`
|
||||||
map[obj.name] = +obj.value
|
|
||||||
} else {
|
const data = {
|
||||||
map[obj.name] = obj.value
|
activity_date: activityDate,
|
||||||
}
|
distance: +e.target.form.distance.value,
|
||||||
}
|
duration,
|
||||||
return map
|
sport_id: +e.target.form.sport_id.value,
|
||||||
}, {})
|
}
|
||||||
dispatch(addActivityWithoutGpx(data))
|
dispatch(addActivityWithoutGpx(data))
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user