mirror of
https://github.com/joaovitoriasilva/endurain.git
synced 2026-01-10 08:17:59 -05:00
support ski and snowboard as gear
This commit is contained in:
@@ -5,5 +5,5 @@ def validate_gear_id(gear_id: int):
|
||||
core_dependencies.validate_id(id=gear_id, min=0, message="Invalid gear ID")
|
||||
|
||||
def validate_gear_type(gear_type: int):
|
||||
# Check if gear type is between 1 and 3
|
||||
core_dependencies.validate_type(type=gear_type, min=1, max=4, message="Invalid gear type")
|
||||
# Check if gear type is within known id range
|
||||
core_dependencies.validate_type(type=gear_type, min=1, max=6, message="Invalid gear type")
|
||||
@@ -30,7 +30,7 @@ class Gear(Base):
|
||||
comment="Gear nickname (May include spaces)",
|
||||
)
|
||||
gear_type = Column(
|
||||
Integer, nullable=False, comment="Gear type (1 - bike, 2 - shoes, 3 - wetsuit, 4 - racquet)"
|
||||
Integer, nullable=False, comment="Gear type (1 - bike, 2 - shoes, 3 - wetsuit, 4 - racquet, 5 - ski, 6 - snowboard)"
|
||||
)
|
||||
user_id = Column(
|
||||
Integer,
|
||||
|
||||
@@ -188,9 +188,11 @@ The table bellow details the activity types supported by Endurain:
|
||||
## Supported gear types
|
||||
The table bellow details the gear types supported by Endurain:
|
||||
|
||||
| Name | Value |
|
||||
| ---- | --- |
|
||||
| Bike | 1 |
|
||||
| Shoes | 2 |
|
||||
| Wetsuit | 3 |
|
||||
| Racquet | 4 |
|
||||
| Name | Value |
|
||||
|-----------|-------|
|
||||
| Bike | 1 |
|
||||
| Shoes | 2 |
|
||||
| Wetsuit | 3 |
|
||||
| Racquet | 4 |
|
||||
| Ski | 5 |
|
||||
| Snowboard | 6 |
|
||||
@@ -51,7 +51,7 @@ Endurain currently supports:
|
||||
- Garmin Connect integration for syncing activities, gear and body composition
|
||||
- Activity feeds and statistics (week/month)
|
||||
- Basic activity privacy settings
|
||||
- Gear tracking (wetsuits, bicycles, shoes, racquets)
|
||||
- Gear tracking (wetsuits, bicycles, shoes, racquets, skis, snowboards)
|
||||
- Default gear for activity types
|
||||
- User pages with stats and activity histories
|
||||
- Follower features (view activities)
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
<option value="2">{{ $t("gearsAddEditGearModalComponent.addEditGearModalAddTypeOption2") }}</option>
|
||||
<option value="3">{{ $t("gearsAddEditGearModalComponent.addEditGearModalAddTypeOption3") }}</option>
|
||||
<option value="4">{{ $t("gearsAddEditGearModalComponent.addEditGearModalAddTypeOption4") }}</option>
|
||||
<option value="5">{{ $t("gearsAddEditGearModalComponent.addEditGearModalAddTypeOption5") }}</option>
|
||||
<option value="6">{{ $t("gearsAddEditGearModalComponent.addEditGearModalAddTypeOption6") }}</option>
|
||||
</select>
|
||||
<!-- date fields -->
|
||||
<label for="gearDateAddEdit"><b>* {{ $t("gearsAddEditGearModalComponent.addEditGearModalAddDateLabel") }}</b></label>
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
<li class="list-group-item d-flex justify-content-between px-0 bg-body-tertiary">
|
||||
<div class="d-flex align-items-center">
|
||||
<img src="/src/assets/avatar/bicycle1.png" alt="Bycicle avatar" width="55" height="55" class="rounded-circle" v-if="gear.gear_type == 1">
|
||||
<img src="/src/assets/avatar/running_shoe1.png" alt="Bycicle avatar" width="55" height="55" class="rounded-circle" v-else-if="gear.gear_type == 2">
|
||||
<img src="/src/assets/avatar/wetsuit1.png" alt="Bycicle avatar" width="55" height="55" class="rounded-circle" v-else-if="gear.gear_type == 3">
|
||||
<img src="/src/assets/avatar/racquet1.png" alt="Bycicle avatar" width="55" height="55" class="rounded-circle" v-else>
|
||||
<img src="/src/assets/avatar/running_shoe1.png" alt="running shoe avatar" width="55" height="55" class="rounded-circle" v-else-if="gear.gear_type == 2">
|
||||
<img src="/src/assets/avatar/wetsuit1.png" alt="wetsuit avatar" width="55" height="55" class="rounded-circle" v-else-if="gear.gear_type == 3">
|
||||
<img src="/src/assets/avatar/racquet1.png" alt="racquet avatar" width="55" height="55" class="rounded-circle" v-else-if="gear.gear_type == 4">
|
||||
<img src="/src/assets/avatar/ski.png" alt="ski avatar" width="55" height="55" class="rounded-circle" v-else-if="gear.gear_type == 5">
|
||||
<img src="/src/assets/avatar/snowboard.png" alt="snowboard avatar" width="55" height="55" class="rounded-circle" v-else>
|
||||
<div class="ms-3">
|
||||
<div class="fw-bold">
|
||||
<router-link :to="{ name: 'gear', params: { id: gear.id }}" class="link-body-emphasis link-underline-opacity-0 link-underline-opacity-100-hover">
|
||||
@@ -15,7 +17,9 @@
|
||||
<span v-if="gear.gear_type == 1">{{ $t("gearsListComponent.gearListTypeOption1") }}</span>
|
||||
<span v-else-if="gear.gear_type == 2">{{ $t("gearsListComponent.gearListTypeOption2") }}</span>
|
||||
<span v-else-if="gear.gear_type == 3">{{ $t("gearsListComponent.gearListTypeOption3") }}</span>
|
||||
<span v-else>{{ $t("gearsListComponent.gearListTypeOption4") }}</span>
|
||||
<span v-else-if="gear.gear_type == 4">{{ $t("gearsListComponent.gearListTypeOption4") }}</span>
|
||||
<span v-else-if="gear.gear_type == 5">{{ $t("gearsListComponent.gearListTypeOption5") }}</span>
|
||||
<span v-else>{{ $t("gearsListComponent.gearListTypeOption6") }}</span>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
"addEditGearModalAddTypeOption2": "Schuhe",
|
||||
"addEditGearModalAddTypeOption3": "Neoprenanzug",
|
||||
"addEditGearModalAddTypeOption4": "Tennisschläger",
|
||||
"addEditGearModalAddTypeOption5": "Ski",
|
||||
"addEditGearModalAddTypeOption6": "Snowboard",
|
||||
"addEditGearModalAddDateLabel": "Erstellt am",
|
||||
"addEditGearModalAddIsActiveLabel": "Ist aktiv",
|
||||
"addEditGearModalAddIsActiveOption1": "Aktiv",
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
"gearListTypeOption1": "Fahrrad",
|
||||
"gearListTypeOption2": "Schuhe",
|
||||
"gearListTypeOption3": "Neoprenanzug",
|
||||
"gearListTypeOption4": "Rack",
|
||||
"gearListTypeOption4": "Tennisschläger",
|
||||
"gearListTypeOption5": "Ski",
|
||||
"gearListTypeOption6": "Snowboard",
|
||||
"gearListGearIsInactiveBadge": "Inaktiv",
|
||||
"gearListGearFromStrava": "Strava",
|
||||
"gearListGearFromGarminConnect": "Garmin Connect",
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
"gearTypeOption2": "Schuhe",
|
||||
"gearTypeOption3": "Neoprenanzug",
|
||||
"gearTypeOption4": "Tennisschläger",
|
||||
"gearTypeOption5": "Ski",
|
||||
"gearTypeOption6": "Snowboard",
|
||||
"gearFromStrava": "Strava",
|
||||
"gearFromGarminConnect": "Garmin Connect",
|
||||
"labelBrand": "Hersteller",
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
"addEditGearModalAddTypeOption2": "Shoes",
|
||||
"addEditGearModalAddTypeOption3": "Wetsuit",
|
||||
"addEditGearModalAddTypeOption4": "Racquet",
|
||||
"addEditGearModelAddTypeOption5": "Ski",
|
||||
"addEditGearModalAddTypeOption6": "Snowboard",
|
||||
"addEditGearModalAddDateLabel": "Created date",
|
||||
"addEditGearModalAddIsActiveLabel": "Is active",
|
||||
"addEditGearModalAddIsActiveOption1": "Active",
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
"gearListTypeOption2": "Shoes",
|
||||
"gearListTypeOption3": "Wetsuit",
|
||||
"gearListTypeOption4": "Racquet",
|
||||
"gearListTypeOption5": "Ski",
|
||||
"gearListTypeOption6": "Snowboard",
|
||||
"gearListGearIsInactiveBadge": "Inactive",
|
||||
"gearListGearFromStrava": "Strava",
|
||||
"gearListGearFromGarminConnect": "Garmin Connect",
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
"gearTypeOption2": "Shoes",
|
||||
"gearTypeOption3": "Wetsuit",
|
||||
"gearTypeOption4": "Racquet",
|
||||
"gearTypeOption5": "Ski",
|
||||
"gearTypeOption6": "Snowboard",
|
||||
"gearFromStrava": "Strava",
|
||||
"gearFromGarminConnect": "Garmin Connect",
|
||||
"labelBrand": "Brand",
|
||||
|
||||
@@ -38,9 +38,15 @@
|
||||
<span class="ms-2 badge bg-primary-subtle border border-primary-subtle text-primary-emphasis align-middle" v-else-if="gear?.gear_type == 3">
|
||||
{{ $t("gearView.gearTypeOption3") }}
|
||||
</span>
|
||||
<span class="ms-2 badge bg-primary-subtle border border-primary-subtle text-primary-emphasis align-middle" v-else>
|
||||
<span class="ms-2 badge bg-primary-subtle border border-primary-subtle text-primary-emphasis align-middle" v-else-if="gear?.gear_type == 4">
|
||||
{{ $t("gearView.gearTypeOption4") }}
|
||||
</span>
|
||||
<span class="ms-2 badge bg-primary-subtle border border-primary-subtle text-primary-emphasis align-middle" v-else-if="gear?.gear_type == 5">
|
||||
{{ $t("gearView.gearTypeOption5") }}
|
||||
</span>
|
||||
<span class="ms-2 badge bg-primary-subtle border border-primary-subtle text-primary-emphasis align-middle" v-else>
|
||||
{{ $t("gearView.gearTypeOption6") }}
|
||||
</span>
|
||||
<span class="ms-2 badge bg-primary-subtle border border-primary-subtle text-primary-emphasis align-middle" v-if="gear?.strava_gear_id">
|
||||
{{ $t("gearView.gearFromStrava") }}
|
||||
</span>
|
||||
|
||||
Reference in New Issue
Block a user