API - remove 'img' column from sport since it's not used anymore
This commit is contained in:
		@@ -148,37 +148,31 @@
 | 
			
		||||
    <span class="nt">"sports"</span><span class="p">:</span> <span class="p">[</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/cycling-sport.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Cycling (Sport)"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/cycling-transport.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Cycling (Transport)"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/hiking.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Hiking"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/mountain-biking.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Mountain Biking"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/running.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Running"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/walking.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Walking"</span>
 | 
			
		||||
      <span class="p">}</span>
 | 
			
		||||
@@ -200,42 +194,36 @@
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"has_workouts"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/cycling-sport.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Cycling (Sport)"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"has_workouts"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/cycling-transport.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Cycling (Transport)"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"has_workouts"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/hiking.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Hiking"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"has_workouts"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/mountain-biking.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Mountain Biking"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"has_workouts"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/running.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Running"</span>
 | 
			
		||||
      <span class="p">},</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"has_workouts"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/walking.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Walking"</span>
 | 
			
		||||
      <span class="p">}</span>
 | 
			
		||||
@@ -291,7 +279,6 @@
 | 
			
		||||
    <span class="nt">"sports"</span><span class="p">:</span> <span class="p">[</span>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/cycling-sport.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Cycling (Sport)"</span>
 | 
			
		||||
      <span class="p">}</span>
 | 
			
		||||
@@ -313,7 +300,6 @@
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"has_workouts"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/cycling-sport.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Cycling (Sport)"</span>
 | 
			
		||||
      <span class="p">}</span>
 | 
			
		||||
@@ -387,7 +373,6 @@ Authenticated user must be an admin</p>
 | 
			
		||||
      <span class="p">{</span>
 | 
			
		||||
        <span class="nt">"has_workouts"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"img"</span><span class="p">:</span> <span class="s2">"/img/sports/cycling-sport.png"</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"is_active"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
 | 
			
		||||
        <span class="nt">"label"</span><span class="p">:</span> <span class="s2">"Cycling (Sport)"</span>
 | 
			
		||||
      <span class="p">}</span>
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -17,6 +17,10 @@ depends_on = None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def upgrade():
 | 
			
		||||
 | 
			
		||||
    op.drop_constraint('sports_img_key', 'sports', type_='unique')
 | 
			
		||||
    op.drop_column('sports', 'img')
 | 
			
		||||
 | 
			
		||||
    op.create_table(
 | 
			
		||||
        'users_sports_preferences',
 | 
			
		||||
        sa.Column('user_id', sa.Integer(), nullable=False),
 | 
			
		||||
@@ -41,6 +45,32 @@ def upgrade():
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def downgrade():
 | 
			
		||||
    # ### commands auto generated by Alembic - please adjust! ###
 | 
			
		||||
    op.drop_table('users_sports_preferences')
 | 
			
		||||
    # ### end Alembic commands ###
 | 
			
		||||
 | 
			
		||||
    op.add_column(
 | 
			
		||||
        'sports',
 | 
			
		||||
        sa.Column(
 | 
			
		||||
            'img', sa.VARCHAR(length=255), autoincrement=False, nullable=True
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
    op.create_unique_constraint('sports_img_key', 'sports', ['img'])
 | 
			
		||||
    op.execute(
 | 
			
		||||
        """
 | 
			
		||||
        UPDATE sports AS s
 | 
			
		||||
        SET img = si.img
 | 
			
		||||
        FROM (VALUES
 | 
			
		||||
            ('Cycling (Sport)','/img/sports/cycling-sport.png'),
 | 
			
		||||
            ('Cycling (Transport)','/img/sports/cycling-transport.png'),
 | 
			
		||||
            ('Hiking','/img/sports/hiking.png'),
 | 
			
		||||
            ('Mountain Biking','/img/sports/mountain-biking.png'),
 | 
			
		||||
            ('Running','/img/sports/running.png'),
 | 
			
		||||
            ('Walking','/img/sports/walking.png'),
 | 
			
		||||
            ('Mountain Biking (Electric)','/img/sports/electric-mountain-biking.png'),
 | 
			
		||||
            ('Trail','/img/sports/trail.png'),
 | 
			
		||||
            ('Skiing (Alpine)','/img/sports/alpine-skiing.png'),
 | 
			
		||||
            ('Skiing (Cross Country)','/img/sports/cross-country-skiing.png'),
 | 
			
		||||
            ('Rowing','/img/sports/rowing.png')
 | 
			
		||||
        ) AS si(label, img)
 | 
			
		||||
        WHERE si.label = s.label;
 | 
			
		||||
        """
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,6 @@ from ..api_test_case import ApiTestCaseMixin
 | 
			
		||||
expected_sport_1_cycling_result = {
 | 
			
		||||
    'id': 1,
 | 
			
		||||
    'label': 'Cycling',
 | 
			
		||||
    'img': None,
 | 
			
		||||
    'is_active': True,
 | 
			
		||||
}
 | 
			
		||||
expected_sport_1_cycling_admin_result = expected_sport_1_cycling_result.copy()
 | 
			
		||||
@@ -19,7 +18,6 @@ expected_sport_1_cycling_admin_result['has_workouts'] = False
 | 
			
		||||
expected_sport_2_running_result = {
 | 
			
		||||
    'id': 2,
 | 
			
		||||
    'label': 'Running',
 | 
			
		||||
    'img': None,
 | 
			
		||||
    'is_active': True,
 | 
			
		||||
}
 | 
			
		||||
expected_sport_2_running_admin_result = expected_sport_2_running_result.copy()
 | 
			
		||||
@@ -28,7 +26,6 @@ expected_sport_2_running_admin_result['has_workouts'] = False
 | 
			
		||||
expected_sport_1_cycling_inactive_result = {
 | 
			
		||||
    'id': 1,
 | 
			
		||||
    'label': 'Cycling',
 | 
			
		||||
    'img': None,
 | 
			
		||||
    'is_active': False,
 | 
			
		||||
}
 | 
			
		||||
expected_sport_1_cycling_inactive_admin_result = (
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,6 @@ class Sport(BaseModel):
 | 
			
		||||
    __tablename__ = 'sports'
 | 
			
		||||
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
 | 
			
		||||
    label = db.Column(db.String(50), unique=True, nullable=False)
 | 
			
		||||
    img = db.Column(db.String(255), unique=True, nullable=True)
 | 
			
		||||
    is_active = db.Column(db.Boolean, default=True, nullable=False)
 | 
			
		||||
    stopped_speed_threshold = db.Column(db.Float, default=1.0, nullable=False)
 | 
			
		||||
    workouts = db.relationship(
 | 
			
		||||
@@ -90,7 +89,6 @@ class Sport(BaseModel):
 | 
			
		||||
        serialized_sport = {
 | 
			
		||||
            'id': self.id,
 | 
			
		||||
            'label': self.label,
 | 
			
		||||
            'img': self.img,
 | 
			
		||||
            'is_active': self.is_active,
 | 
			
		||||
        }
 | 
			
		||||
        if is_admin:
 | 
			
		||||
 
 | 
			
		||||
@@ -45,37 +45,31 @@ def get_sports(auth_user_id: int) -> Dict:
 | 
			
		||||
          "sports": [
 | 
			
		||||
            {
 | 
			
		||||
              "id": 1,
 | 
			
		||||
              "img": "/img/sports/cycling-sport.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Cycling (Sport)"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "id": 2,
 | 
			
		||||
              "img": "/img/sports/cycling-transport.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Cycling (Transport)"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "id": 3,
 | 
			
		||||
              "img": "/img/sports/hiking.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Hiking"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "id": 4,
 | 
			
		||||
              "img": "/img/sports/mountain-biking.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Mountain Biking"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "id": 5,
 | 
			
		||||
              "img": "/img/sports/running.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Running"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "id": 6,
 | 
			
		||||
              "img": "/img/sports/walking.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Walking"
 | 
			
		||||
            }
 | 
			
		||||
@@ -97,42 +91,36 @@ def get_sports(auth_user_id: int) -> Dict:
 | 
			
		||||
            {
 | 
			
		||||
              "has_workouts": true,
 | 
			
		||||
              "id": 1,
 | 
			
		||||
              "img": "/img/sports/cycling-sport.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Cycling (Sport)"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "has_workouts": false,
 | 
			
		||||
              "id": 2,
 | 
			
		||||
              "img": "/img/sports/cycling-transport.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Cycling (Transport)"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "has_workouts": false,
 | 
			
		||||
              "id": 3,
 | 
			
		||||
              "img": "/img/sports/hiking.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Hiking"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "has_workouts": false,
 | 
			
		||||
              "id": 4,
 | 
			
		||||
              "img": "/img/sports/mountain-biking.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Mountain Biking"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "has_workouts": false,
 | 
			
		||||
              "id": 5,
 | 
			
		||||
              "img": "/img/sports/running.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Running"
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "has_workouts": false,
 | 
			
		||||
              "id": 6,
 | 
			
		||||
              "img": "/img/sports/walking.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Walking"
 | 
			
		||||
            }
 | 
			
		||||
@@ -187,7 +175,6 @@ def get_sport(auth_user_id: int, sport_id: int) -> Union[Dict, HttpResponse]:
 | 
			
		||||
          "sports": [
 | 
			
		||||
            {
 | 
			
		||||
              "id": 1,
 | 
			
		||||
              "img": "/img/sports/cycling-sport.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Cycling (Sport)"
 | 
			
		||||
            }
 | 
			
		||||
@@ -209,7 +196,6 @@ def get_sport(auth_user_id: int, sport_id: int) -> Union[Dict, HttpResponse]:
 | 
			
		||||
            {
 | 
			
		||||
              "has_workouts": false,
 | 
			
		||||
              "id": 1,
 | 
			
		||||
              "img": "/img/sports/cycling-sport.png",
 | 
			
		||||
              "is_active": true,
 | 
			
		||||
              "label": "Cycling (Sport)"
 | 
			
		||||
            }
 | 
			
		||||
@@ -286,7 +272,6 @@ def update_sport(
 | 
			
		||||
            {
 | 
			
		||||
              "has_workouts": false,
 | 
			
		||||
              "id": 1,
 | 
			
		||||
              "img": "/img/sports/cycling-sport.png",
 | 
			
		||||
              "is_active": false,
 | 
			
		||||
              "label": "Cycling (Sport)"
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user