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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 literal 0 HcmV?d00001 diff --git a/mpwo_client/public/img/sports/cycling-sport.png b/mpwo_client/public/img/sports/cycling-sport.png new file mode 100644 index 0000000000000000000000000000000000000000..25f5e0df3993a4528df0081640f159162b8ae69f GIT binary patch literal 5500 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 literal 0 HcmV?d00001 diff --git a/mpwo_client/public/img/sports/hiking.png b/mpwo_client/public/img/sports/hiking.png new file mode 100644 index 0000000000000000000000000000000000000000..cc06eeb8d953dfc680a4392a4bb0ab7f8a7020a8 GIT binary patch literal 3102 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 b?Yma5+Q07CvR!@e ze{%^532BK7K0o|=_WpW@sV{6pmD89mU(6BsAm+3`>hsTVe*4d7V&jj-IwsG(A#z~O zWh42ux(Ua17VXt$`G05Mnyt!ulG=?YL?8TEw)%MQYOl2}1#SCfeq|lc+ijd>sm-eV zioMS}H2(4akBlzafA37&-y3z#OYxH2f;c^kGY2YUSDZ9{&7SxE$I7{@FU7lP=Bo;1 z@+T-no!I}8kx$@iv|mrqH7~_S{tbq@8Gek%-L?5Z9j@zW>WUTOGXY+#S|W(ibwh}GzOV>^4x7VCTeR(Sd1 znTi7O<*ok?IPBRG?f-UF=;}*%3&WjMgG*Qqp0DV>aEGfVx8?ThtpeA}b+T&(E)<5l zsRo6xW=zoSX8n~W?`d7I^GsyoU&D7?D^0qVF{q!u?-Tcw(}E|@L3 z@7~3L&Ar@RAKyK7TjlXIP9(_kGS9;JtO;42_Y(h<&gEae|ID-xGb%r?QqQ}!RC1yC zqPut6)T7=9EGgI5c6!e!m8Snots}oJB4uiW*yGi@`6gzoh1>4UDfB#ju6I-F!6Rpd z?>oP6XNV7TXIsPn`|jz97pfT&Uvzh=ygnH9p=NPR#r^4zd){BqOMM=mcuG7}% zaBO9t@!@F8WzHKvn8Y$?F#cKG|0MqN#AWim0{=A+cUc? z$G4pma`Jw#Ua{kH@3X|~S1->=UAtVp*WPGhEz_%~O?P>FzOu~v*U2usyY$|IO)Vdj zO^TU1F123!9-jE;$Vt`)ue4*#3U z(G35V#J+p8PSn0Oai!=hrhd(!gFMVGQAx+eD8&Fbmh{KJzB~kGPokb`zSa8jf*``(G+ZTX3f7IM>bB{EhCN+di@vE!DibNaB92HLGUB zySI~BxPLUg*FPKIN%H#oc1Eg(4`a)<#%Xn|doJxW5>hW#&w4WSo6j`ux<;qu=uQ19pR=b5b-sOlpE?RDRI$EAL zs6jJS_k-OAcNe4QhuaS%_T|>j)J{x0`^eG8`graE)4p8RZ}WM+aNfx9v21xECBJ~} zY)MPql0rZ43woc6yf%M4cspj+Z0*3bzYp5~?4S7B;z3#Ps_Le7x-3Brb`Rwwf?XGG z{TH`5qBR=xWyK@1mzx2iolC3)&0?^)fSIu3J%Ht(qucw*N6 z+pX_+aii$6kbQ5Bm^2-Z<=e-(`#oG`6EwY{tck{eVADz)PS^eN#>b2|x+0N^)Utb=4CHJOn zX!4bvdGT{EEaJNnE4|1sW4oX7E0Zgn=NB&Fo8cmN@ia@!or;H#Uf+`6`Sh}mXVTnF z&rTY!8Z5oVem-xZK;Oa56}w7a^d?oZ=c_00|6cg)JpZFB%T|}ay|-|e-KVRM`y=lpZ-24b8o*;(cRn86Z%)8qIzNsz?@weLc^~izliR@ip8vlJ=Wo`Gm zV$Ij@p-u9Jzsdy}79RcctNYSTrHTLb=e6cpZm88iFeOXu1Jk`_{t-3_UZxqAdqhMN ztk3Ii{>NbRQu(FaqUzVJ%6AKLR=0mDWG(kydCqugmE;e}hkrh?Z({#&-~cykEtApd zK3<3a-%|eHXW7H}!0mzYp7=!T3-4}ROaE!(EWL$u`sU)L!n0T_cBd%wTHR;=#=X<1 z`(Q{y=*0Pj(=@Mk_T~O%W6EJqm)a|LK08h9XXZ-oHLP`vcV6EJn?B#C_v|ZI-6HlG z*PQ0x-MHp$=fdm0E7z(1mRKnCvokq5+;QG~hRe5GtEJC>&6N9D9>``OyF>EFg(+H+-O*$gzck%EAW|~zZ7*Zm*L?Zkpx|ouSviko9wQ&8XGiA&{sw-ZmH$e&w5ZEk z{S*IjqgtS2rt)0F7dNi$?lEv(oA8bGA6tz^gXY!L1JNw;9Vd=fJm3pnH9tLiqu27w z>n{A*RJF3GbX%MPC#Ug@$O+DjJ}dJMNSnF|2ELYg5E{H{vD>c5-Kl?^EAnnEUi5H| z&gsMaO!M78$UQxDa)K+P&&pN4E9KbM^+v2B0EMAoy zJ%17p3%ilzrtb{j85|Gq6*;A{Cw5KZw`!;G`@B!K@LlWZme!B4$!v)(XI6c`Szd6m z&&sTJO^0LAPdCkIwHEjhnxsmM*VK4lxMAG_g3r) znK3``)Z3C<-uE0IKNncJi`O)IS%1mljcZj894_1+!)dUBeFkfb{ZHeZ+W8G!`z0cQtvr}SIIxDoHNa8cB7{x z_k0h-rME=$W0S1nwyZC#*c-(4gQJ2!fBwTduWYHg-OGcYl(}n(mK`(Bj0(?i{Q2m{ zHMa*h&)hdK%GU4?j_c*$a8IFT_vWNc-glUIRFf4;*_C?&PcnMTsr)N)R)4ty_;N~e{y*p9Q59BO$9w+9(ie6UpE_|>nCB_h2wAW- zYF;gQV0i3ZS6qM#*ZJ>y&nN1tI^5gXYFzx~=z&s|{l5eajr@eyAJ^^Re^Vor&R6@3 zcb;m&r5}+m*3S@~GSBpa!@Z)M*Om61#_Q6;nZkqP4k{)kE?~Oj@p4!9{mI&n&&2mL z4jX>vMxuI&AT9%YZ1eGH2?O5V7=ajm16wIuVz!;Q)xu01@j+<(D{li>?bNJH(% zG?t~`UjO92&?#=aSo-|={~V_d-`{`brKE_w!eefUt=17vHD7rCKD*x|pMAT<@bCr> z#hDvY^dINesPyEvePyuNww3REsP*%gqMWJy5{0*(-?;X^!EMjui^9hY7PEC4Ew$qK z!9U6L%SNyFD?UH_em`b&;i)T<{g3DJ)`Z--q}I|m`}{_2b;j?8RUV&PJ}tWb{nX9h z`RjfboVp^(&+xxD-O<=G@1-!;v3h<3k>FLzjcE_we{kx1E3#!x%Z(S@Pi20e+4ozp zBAxSHQ~I7r)<2TxCnobPt_m*F13=cn6u=g_q0V3 zr)C6Qeb|~}ZU0W(M`CWEs6z3%Gyf`XZ;1XVqq429I4J+_r+}PNSG(=>e$+uM54W z3P`>?aItdMl8@Saj1w#~ew^=7Tz{P<{>4AJ2QHJ2t@rpPnhJphIp!An(gJzziP*URV&;r#XM|~w4>sUR`?ADr6$J+5I=0J;(is6+N z1;0cU3cjpu+4O939czU2b`{Qz8@9zW-tyoJUSksTV4GIM_xmxQFHTu$Z1&i)MeT9Z zMt}JYCpNBq>a5$ejQR6NzKI@T?8oJ#8^Rl_Wp7t$<|PUV2|arDpW$p~$eRnoreX{X z45}rr5hW>!C8<`)MX8A;sSHL2h8DU8rn-h^A%^Bw24+^q7TN|zRt5%_dmOf)Xvob^ z$xN%ntzpr{9~=w}43Z!lg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3kphijc)I$z JtaD0e0ssw|G&cYM 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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 Mr>mdKI;Vst0Ej-1tpET3 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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 u7yMxsz#o$@^()w} + 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}{' '} - -