implement user preference for elevation plots starting at zero;

add docker make command to downgrade db;
add (google-powered) translations for the new labels
This commit is contained in:
Joshua Taillon
2023-03-13 22:51:05 -06:00
parent dd40fd7154
commit 34272814c1
19 changed files with 107 additions and 7 deletions

View File

@ -0,0 +1,35 @@
"""add user preference to start elevation plots at zero
Revision ID: db58d195c5bf
Revises: 374a670efe23
Create Date: 2023-03-14 04:14:23.781672
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'db58d195c5bf'
down_revision = '374a670efe23'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('users', schema=None) as batch_op:
batch_op.add_column(sa.Column('start_elevation_at_zero', sa.Boolean(), nullable=True))
op.execute("UPDATE users SET start_elevation_at_zero = true")
op.alter_column('users', 'start_elevation_at_zero', nullable=False)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('users', schema=None) as batch_op:
batch_op.drop_column('start_elevation_at_zero')
# ### end Alembic commands ###

View File

@ -869,6 +869,7 @@ def edit_user_preferences(auth_user: User) -> Union[Dict, HttpResponse]:
4,
6
],
"start_elevation_at_zero": true,
"timezone": "Europe/Paris",
"total_distance": 67.895,
"total_duration": "6:50:27",
@ -883,9 +884,9 @@ def edit_user_preferences(auth_user: User) -> Union[Dict, HttpResponse]:
:<json boolean display_ascent: display highest ascent records and total
:<json boolean imperial_units: display distance in imperial units
:<json string language: language preferences
:<json boolean start_elevation_at_zero: should elevation plots start at zero by default?
:<json string timezone: user time zone
:<json boolean weekm: does week start on Monday?
:<json boolean weekm: does week start on Monday?
:reqheader Authorization: OAuth 2.0 Bearer Token
@ -906,6 +907,7 @@ def edit_user_preferences(auth_user: User) -> Union[Dict, HttpResponse]:
'display_ascent',
'imperial_units',
'language',
'start_elevation_at_zero',
'timezone',
'weekm',
}
@ -916,6 +918,7 @@ def edit_user_preferences(auth_user: User) -> Union[Dict, HttpResponse]:
display_ascent = post_data.get('display_ascent')
imperial_units = post_data.get('imperial_units')
language = get_language(post_data.get('language'))
start_elevation_at_zero = post_data.get('start_elevation_at_zero')
timezone = post_data.get('timezone')
weekm = post_data.get('weekm')
@ -924,6 +927,7 @@ def edit_user_preferences(auth_user: User) -> Union[Dict, HttpResponse]:
auth_user.display_ascent = display_ascent
auth_user.imperial_units = imperial_units
auth_user.language = language
auth_user.start_elevation_at_zero = start_elevation_at_zero
auth_user.timezone = timezone
auth_user.weekm = weekm
db.session.commit()

View File

@ -59,6 +59,7 @@ class User(BaseModel):
confirmation_token = db.Column(db.String(255), nullable=True)
display_ascent = db.Column(db.Boolean, default=True, nullable=False)
accepted_policy_date = db.Column(db.DateTime, nullable=True)
start_elevation_at_zero = db.Column(db.Boolean, default=True, nullable=False)
def __repr__(self) -> str:
return f'<User {self.username!r}>'
@ -211,6 +212,7 @@ class User(BaseModel):
'display_ascent': self.display_ascent,
'imperial_units': self.imperial_units,
'language': self.language,
'start_elevation_at_zero': self.start_elevation_at_zero,
'timezone': self.timezone,
'weekm': self.weekm,
},