API & Client: add timezone to user - #11
This commit is contained in:
@ -49,6 +49,7 @@ def user_1_full():
|
||||
user.last_name = 'Doe'
|
||||
user.bio = 'just a random guy'
|
||||
user.location = 'somewhere'
|
||||
user.timezone = 'America/New_York'
|
||||
user.birth_date = datetime.datetime.strptime('01/01/1980', '%d/%m/%Y')
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
|
@ -397,6 +397,7 @@ def test_user_profile_minimal(app, user_1):
|
||||
assert data['data']['email'] == 'test@test.com'
|
||||
assert data['data']['created_at']
|
||||
assert not data['data']['admin']
|
||||
assert data['data']['timezone'] is None
|
||||
assert data['data']['nb_activities'] == 0
|
||||
assert data['data']['nb_sports'] == 0
|
||||
assert data['data']['total_distance'] == 0
|
||||
@ -434,6 +435,7 @@ def test_user_profile_full(app, user_1_full):
|
||||
assert data['data']['birth_date']
|
||||
assert data['data']['bio'] == 'just a random guy'
|
||||
assert data['data']['location'] == 'somewhere'
|
||||
assert data['data']['timezone'] == 'America/New_York'
|
||||
assert data['data']['nb_activities'] == 0
|
||||
assert data['data']['nb_sports'] == 0
|
||||
assert data['data']['total_distance'] == 0
|
||||
@ -469,6 +471,7 @@ def test_user_profile_with_activities(
|
||||
assert data['data']['email'] == 'test@test.com'
|
||||
assert data['data']['created_at']
|
||||
assert not data['data']['admin']
|
||||
assert data['data']['timezone'] is None
|
||||
assert data['data']['nb_activities'] == 2
|
||||
assert data['data']['nb_sports'] == 2
|
||||
assert data['data']['total_distance'] == 22
|
||||
@ -507,7 +510,8 @@ def test_user_profile_valid_update(app, user_1):
|
||||
bio='just a random guy',
|
||||
birth_date='1980-01-01',
|
||||
password='87654321',
|
||||
password_conf='87654321'
|
||||
password_conf='87654321',
|
||||
timezone='America/New_York'
|
||||
)),
|
||||
headers=dict(
|
||||
Authorization='Bearer ' + json.loads(
|
||||
@ -627,7 +631,8 @@ def test_user_profile_invalid_password(app, user_1):
|
||||
bio='just a random guy',
|
||||
birth_date='1980-01-01',
|
||||
password='87654321',
|
||||
password_conf='876543210'
|
||||
password_conf='876543210',
|
||||
timezone='America/New_York'
|
||||
)),
|
||||
headers=dict(
|
||||
Authorization='Bearer ' + json.loads(
|
||||
@ -661,6 +666,7 @@ def test_user_profile_missing_password_conf(app, user_1):
|
||||
bio='just a random guy',
|
||||
birth_date='1980-01-01',
|
||||
password='87654321',
|
||||
timezone='America/New_York'
|
||||
)),
|
||||
headers=dict(
|
||||
Authorization='Bearer ' + json.loads(
|
||||
|
@ -32,6 +32,7 @@ def test_single_user(app, user_1):
|
||||
assert data['data']['birth_date'] is None
|
||||
assert data['data']['bio'] is None
|
||||
assert data['data']['location'] is None
|
||||
assert data['data']['timezone'] is None
|
||||
assert data['data']['nb_activities'] == 0
|
||||
assert data['data']['nb_sports'] == 0
|
||||
assert data['data']['total_distance'] == 0
|
||||
@ -60,6 +61,7 @@ def test_single_user_with_activities(
|
||||
assert data['data']['birth_date'] is None
|
||||
assert data['data']['bio'] is None
|
||||
assert data['data']['location'] is None
|
||||
assert data['data']['timezone'] is None
|
||||
assert data['data']['nb_activities'] == 2
|
||||
assert data['data']['nb_sports'] == 2
|
||||
assert data['data']['total_distance'] == 22
|
||||
@ -105,10 +107,12 @@ def test_users_list(app, user_1, user_2):
|
||||
assert 'toto' in data['data']['users'][1]['username']
|
||||
assert 'test@test.com' in data['data']['users'][0]['email']
|
||||
assert 'toto@toto.com' in data['data']['users'][1]['email']
|
||||
assert data['data']['users'][0]['timezone'] is None
|
||||
assert data['data']['users'][0]['nb_activities'] == 0
|
||||
assert data['data']['users'][0]['nb_sports'] == 0
|
||||
assert data['data']['users'][0]['total_distance'] == 0
|
||||
assert data['data']['users'][0]['total_duration'] == '0:00:00'
|
||||
assert data['data']['users'][1]['timezone'] is None
|
||||
assert data['data']['users'][1]['nb_activities'] == 0
|
||||
assert data['data']['users'][1]['nb_sports'] == 0
|
||||
assert data['data']['users'][1]['total_distance'] == 0
|
||||
|
@ -12,6 +12,7 @@ def test_user_model(app, user_1):
|
||||
assert serialized_user['location'] is None
|
||||
assert serialized_user['birth_date'] is None
|
||||
assert serialized_user['picture'] is False
|
||||
assert serialized_user['timezone'] is None
|
||||
assert serialized_user['nb_activities'] == 0
|
||||
assert serialized_user['nb_sports'] == 0
|
||||
assert serialized_user['total_distance'] == 0
|
||||
|
@ -185,6 +185,7 @@ def edit_user(user_id):
|
||||
location = post_data.get('location')
|
||||
password = post_data.get('password')
|
||||
password_conf = post_data.get('password_conf')
|
||||
timezone = post_data.get('timezone')
|
||||
|
||||
if password is not None and password != '':
|
||||
if password_conf != password:
|
||||
@ -211,6 +212,7 @@ def edit_user(user_id):
|
||||
)
|
||||
if password is not None and password != '':
|
||||
user.password = password
|
||||
user.timezone = timezone
|
||||
db.session.commit()
|
||||
|
||||
response_object = {
|
||||
|
@ -22,6 +22,7 @@ class User(db.Model):
|
||||
location = db.Column(db.String(80), nullable=True)
|
||||
bio = db.Column(db.String(200), nullable=True)
|
||||
picture = db.Column(db.String(255), nullable=True)
|
||||
timezone = db.Column(db.String(50), nullable=True)
|
||||
activities = db.relationship('Activity',
|
||||
lazy=True,
|
||||
backref=db.backref('users', lazy='joined'))
|
||||
@ -111,6 +112,7 @@ class User(db.Model):
|
||||
'location': self.location,
|
||||
'birth_date': self.birth_date,
|
||||
'picture': self.picture is not None,
|
||||
'timezone': self.timezone,
|
||||
'nb_activities': nb_activity,
|
||||
'nb_sports': len(sports),
|
||||
'total_distance': float(total[0]) if total[0] else 0,
|
||||
|
@ -1,4 +1,4 @@
|
||||
"""empty message
|
||||
"""add static map url to 'Activity' table
|
||||
|
||||
Revision ID: 5a42db64e872
|
||||
Revises: 92adde6ac0d0
|
||||
|
@ -1,4 +1,4 @@
|
||||
"""empty message
|
||||
"""add static map id to 'Activity' table
|
||||
|
||||
Revision ID: 9f8c9c37da44
|
||||
Revises: 5a42db64e872
|
||||
|
28
fittrackee_api/migrations/versions/e82e5e9447de_.py
Normal file
28
fittrackee_api/migrations/versions/e82e5e9447de_.py
Normal file
@ -0,0 +1,28 @@
|
||||
"""add 'timezone' to 'User' table
|
||||
|
||||
Revision ID: e82e5e9447de
|
||||
Revises: 9f8c9c37da44
|
||||
Create Date: 2018-06-08 16:01:52.684935
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'e82e5e9447de'
|
||||
down_revision = '9f8c9c37da44'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('users', sa.Column('timezone', sa.String(length=50), nullable=True))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('users', 'timezone')
|
||||
# ### end Alembic commands ###
|
@ -26,6 +26,7 @@ def init_data():
|
||||
email='admin@example.com',
|
||||
password='mpwoadmin')
|
||||
admin.admin = True
|
||||
admin.timezone = 'Europe/Paris'
|
||||
db.session.add(admin)
|
||||
sport = Sport(label='Cycling (Sport)')
|
||||
sport.img = '/img/sports/cycling-sport.png'
|
||||
|
Reference in New Issue
Block a user