From ca80a8b6d586fc24f3356ba2c3df0a773f1ba89b Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 16 May 2018 23:52:55 +0200 Subject: [PATCH] API & Client: Activity display update --- mpwo_api/migrations/versions/b7cfe0c17708_.py | 2 + mpwo_api/mpwo_api/activities/models.py | 6 +- mpwo_api/mpwo_api/activities/utils.py | 2 +- mpwo_api/mpwo_api/tests/test_sports_api.py | 2 + mpwo_api/server.py | 30 ++- mpwo_client/public/img/photo.png | Bin 0 -> 2941 bytes .../public/img/sports/cycling-sport.png | Bin 0 -> 5500 bytes .../public/img/sports/cycling-transport.png | Bin 0 -> 5620 bytes mpwo_client/public/img/sports/hiking.png | Bin 0 -> 3102 bytes .../public/img/sports/mountain-biking.png | Bin 0 -> 4406 bytes mpwo_client/public/img/sports/running.png | Bin 0 -> 3104 bytes mpwo_client/public/img/sports/walking.png | Bin 0 -> 3564 bytes mpwo_client/public/index.html | 5 +- .../components/Activities/ActivityDisplay.jsx | 199 +++++++++++------- .../src/components/Activities/ActivityMap.jsx | 2 +- .../components/Admin/generic/AdminDetail.jsx | 13 +- .../components/Admin/generic/AdminPage.jsx | 10 + mpwo_client/src/components/App.css | 37 +++- mpwo_client/src/utils.js | 12 +- 19 files changed, 229 insertions(+), 91 deletions(-) create mode 100644 mpwo_client/public/img/photo.png create mode 100644 mpwo_client/public/img/sports/cycling-sport.png create mode 100644 mpwo_client/public/img/sports/cycling-transport.png create mode 100644 mpwo_client/public/img/sports/hiking.png create mode 100644 mpwo_client/public/img/sports/mountain-biking.png create mode 100644 mpwo_client/public/img/sports/running.png create mode 100644 mpwo_client/public/img/sports/walking.png diff --git a/mpwo_api/migrations/versions/b7cfe0c17708_.py b/mpwo_api/migrations/versions/b7cfe0c17708_.py index 8ea38239..15b36b5e 100644 --- a/mpwo_api/migrations/versions/b7cfe0c17708_.py +++ b/mpwo_api/migrations/versions/b7cfe0c17708_.py @@ -21,6 +21,8 @@ def upgrade(): op.create_table('sports', sa.Column('id', sa.Integer(), nullable=False), sa.Column('label', sa.String(length=50), nullable=False), + sa.Column('img', sa.String(length=255), nullable=True), + sa.Column('is_default', sa.Boolean(), default=False, nullable=False), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('label') ) diff --git a/mpwo_api/mpwo_api/activities/models.py b/mpwo_api/mpwo_api/activities/models.py index 09eb27ee..94370745 100644 --- a/mpwo_api/mpwo_api/activities/models.py +++ b/mpwo_api/mpwo_api/activities/models.py @@ -76,6 +76,8 @@ class Sport(db.Model): __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_default = db.Column(db.Boolean, default=False, nullable=False) activities = db.relationship('Activity', lazy=True, backref=db.backref('sports', lazy='joined')) @@ -93,7 +95,9 @@ class Sport(db.Model): return { 'id': self.id, 'label': self.label, - '_can_be_deleted': len(self.activities) == 0 + 'img': self.img, + '_can_be_deleted': + len(self.activities) == 0 and not self.is_default } diff --git a/mpwo_api/mpwo_api/activities/utils.py b/mpwo_api/mpwo_api/activities/utils.py index ac911d72..3b3a4833 100644 --- a/mpwo_api/mpwo_api/activities/utils.py +++ b/mpwo_api/mpwo_api/activities/utils.py @@ -43,7 +43,7 @@ def create_activity( duration=duration ) - if title is not None: + if title is not None and title != '': new_activity.title = title else: sport = Sport.query.filter_by(id=new_activity.sport_id).first() diff --git a/mpwo_api/mpwo_api/tests/test_sports_api.py b/mpwo_api/mpwo_api/tests/test_sports_api.py index 5514c97c..af08d8d6 100644 --- a/mpwo_api/mpwo_api/tests/test_sports_api.py +++ b/mpwo_api/mpwo_api/tests/test_sports_api.py @@ -3,12 +3,14 @@ import json expected_sport_1_cycling_result = { 'id': 1, 'label': 'Cycling', + 'img': None, '_can_be_deleted': True } expected_sport_2_running_result = { 'id': 2, 'label': 'Running', + 'img': None, '_can_be_deleted': True } diff --git a/mpwo_api/server.py b/mpwo_api/server.py index 396238d8..fd0925f1 100644 --- a/mpwo_api/server.py +++ b/mpwo_api/server.py @@ -27,12 +27,30 @@ def init_data(): password='mpwoadmin') admin.admin = True db.session.add(admin) - db.session.add(Sport(label='Cycling (Sport)')) - db.session.add(Sport(label='Cycling (Transport)')) - db.session.add(Sport(label='Hiking')) - db.session.add(Sport(label='Mountain Biking')) - db.session.add(Sport(label='Running')) - db.session.add(Sport(label='Walking')) + sport = Sport(label='Cycling (Sport)') + sport.img = '/img/sports/cycling-sport.png' + sport.is_default = True + db.session.add(sport) + sport = Sport(label='Cycling (Transport)') + sport.img = '/img/sports/cycling-transport.png' + sport.is_default = True + db.session.add(sport) + sport = Sport(label='Hiking') + sport.img = '/img/sports/hiking.png' + sport.is_default = True + db.session.add(sport) + sport = Sport(label='Mountain Biking') + sport.img = '/img/sports/mountain-biking.png' + sport.is_default = True + db.session.add(sport) + sport = Sport(label='Running') + sport.img = '/img/sports/running.png' + sport.is_default = True + db.session.add(sport) + sport = Sport(label='Walking') + sport.img = '/img/sports/walking.png' + sport.is_default = True + db.session.add(sport) db.session.commit() print('Initial data stored in database.') diff --git a/mpwo_client/public/img/photo.png b/mpwo_client/public/img/photo.png new file mode 100644 index 0000000000000000000000000000000000000000..a802c0d70ff34518de69b20e7d4e7509bfa0fab1 GIT binary patch literal 2941 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 C5PP`* literal 0 HcmV?d00001 diff --git a/mpwo_client/public/img/sports/mountain-biking.png b/mpwo_client/public/img/sports/mountain-biking.png new file mode 100644 index 0000000000000000000000000000000000000000..9b26acfc13e66f22270edd0a270966e76b5fbabd GIT binary patch literal 4406 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 literal 0 HcmV?d00001 diff --git a/mpwo_client/public/img/sports/running.png b/mpwo_client/public/img/sports/running.png new file mode 100644 index 0000000000000000000000000000000000000000..fe4a2814f150dfd95d4d5f96b48026ebba2b4730 GIT binary patch literal 3104 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 literal 0 HcmV?d00001 diff --git a/mpwo_client/public/img/sports/walking.png b/mpwo_client/public/img/sports/walking.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc5c0d7e93f0ee467e09b85aac4b70ee9cd8fbd GIT binary patch literal 3564 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 mTyGlsQ$BR}NP=Rl9R44Wl13?Mmcb|h0000 + href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" + integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" + crossorigin="anonymous"> s.id === activity.sport_id) + : [] + const activityDate = activity + ? formatActivityDate(activity.activity_date) + : null return ( -
+
- mpwo - Activity + mpwo - {title} -

- Activity -

{message ? ( {message} ) : ( @@ -46,79 +51,129 @@ class ActivityDisplay extends React.Component { }} close={() => this.setState({ displayModal: false })} />} - {activity && sports.length > 0 && ( + {activity && sport && (
-
+
- {sports.filter(sport => sport.id === activity.sport_id) - .map(sport => sport.label)} -{' '} - {activity.activity_date}{' '} - -