thesis #5

Merged
jlobbes merged 8 commits from thesis into master 2023-09-01 11:45:44 +01:00
23 changed files with 200 additions and 131 deletions
Showing only changes of commit 11801bf8fb - Show all commits

View File

@ -29,10 +29,8 @@ ALLOWED_HOSTS = [ '*' ]
# Force HttpRequest.build_absolute_uri() to generate HTTPS links in production # Force HttpRequest.build_absolute_uri() to generate HTTPS links in production
# This is necessary when running behind a reverse proxy # This is necessary when running behind a reverse proxy
#USE_X_FORWARDED_HOST = False if DEBUG else True USE_X_FORWARDED_HOST = False if DEBUG else True
#SECURE_PROXY_SSL_HEADER = () if DEBUG else ('HTTP_X_FORWARDED_PROTO', 'https') SECURE_PROXY_SSL_HEADER = () if DEBUG else ('HTTP_X_FORWARDED_PROTO', 'https')
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# Application definition # Application definition

View File

@ -1,3 +1,5 @@
<div class="flex gap-4 justify-center items-center p-2 bg-primary-100 text-sm text-background"> <div class="flex gap-4 justify-center items-center p-2 bg-primary-100 text-sm text-background">
<p>&copy; 2023 Julian Lobbes</p> <p>&copy; 2023 Julian Lobbes</p>
<a href="https://lobbes.dev/imprint">Imprint</a>
<a href="https://lobbes.dev/privacy-policy">Privacy Policy</a>
</div> </div>

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
# Generated by Django 4.2.3 on 2023-07-30 21:15 # Generated by Django 4.2.3 on 2023-08-24 13:02
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models

View File

@ -1,4 +1,4 @@
# Generated by Django 4.2.3 on 2023-07-30 21:15 # Generated by Django 4.2.3 on 2023-08-24 13:02
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
@ -11,8 +11,8 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('auth', '0012_alter_user_first_name_max_length'), ('auth', '0012_alter_user_first_name_max_length'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
] ]
operations = [ operations = [
@ -31,7 +31,7 @@ class Migration(migrations.Migration):
fields=[ fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('recorded', models.DateTimeField(unique=True, validators=[medwings.validators.AbstractRecordValidator.recorded], verbose_name='Time at which measurement was taken')), ('recorded', models.DateTimeField(unique=True, validators=[medwings.validators.AbstractRecordValidator.recorded], verbose_name='Time at which measurement was taken')),
('value_celsius', models.DecimalField(decimal_places=2, max_digits=5, unique=True, validators=[medwings.validators.BodyTempRecordValidator.value_celsius], verbose_name='Body Temperature (°C)')), ('value_celsius', models.DecimalField(decimal_places=2, max_digits=5, validators=[medwings.validators.BodyTempRecordValidator.value_celsius], verbose_name='Body Temperature (°C)')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
], ],
), ),

View File

@ -27,7 +27,7 @@ class BloodPressureRecord(models.Model):
class BodyTempRecord(models.Model): class BodyTempRecord(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE)
recorded = models.DateTimeField(validators=[validators.BodyTempRecordValidator.recorded], unique=True, verbose_name="Time at which measurement was taken") recorded = models.DateTimeField(validators=[validators.BodyTempRecordValidator.recorded], unique=True, verbose_name="Time at which measurement was taken")
value_celsius = models.DecimalField(max_digits=5, decimal_places=2, validators=[validators.BodyTempRecordValidator.value_celsius], unique=True, verbose_name="Body Temperature (\u00B0C)") value_celsius = models.DecimalField(max_digits=5, decimal_places=2, validators=[validators.BodyTempRecordValidator.value_celsius], verbose_name="Body Temperature (\u00B0C)")
class HeartRateRecord(models.Model): class HeartRateRecord(models.Model):

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="873.92798"
height="873.92798"
id="logo"
inkscape:label="Pozadí"
sodipodi:version="0.32"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
version="1.0"
sodipodi:docname="ecg-curve.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
inkscape:export-filename="/home/www/petr/bf2/slides/praktika-petr/EKG/svg/ECG-PQRST+popis.png"
inkscape:export-xdpi="300"
inkscape:export-ydpi="300"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs3">
<linearGradient
inkscape:collect="always"
id="linearGradient1250">
<stop
style="stop-color:#0018a0;stop-opacity:0;"
offset="0"
id="stop1640" />
<stop
style="stop-color:#ff0000;stop-opacity:1;"
offset="0.5"
id="stop1642" />
<stop
style="stop-color:#0018a0;stop-opacity:0;"
offset="1"
id="stop1248" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 656.01458 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 656.01458 : 1"
inkscape:persp3d-origin="372.04724 : 480.62088 : 1"
id="perspective9" />
<radialGradient
id="paint0_radial_103_1602"
cx="0"
cy="0"
r="1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(235.00043,405.00102,-443.00427,257.05167,224.96351,273.0805)">
<stop
stop-color="#FFAA00"
id="stop990" />
<stop
offset="1"
stop-color="#F05206"
id="stop992" />
</radialGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1250"
id="linearGradient1638"
x1="3.9999866"
y1="436.9679"
x2="869.92798"
y2="436.9679"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="58.588847"
inkscape:cy="588.91893"
inkscape:document-units="mm"
inkscape:current-layer="logo"
showgrid="true"
units="cm"
inkscape:window-width="1898"
inkscape:window-height="1028"
inkscape:window-x="0"
inkscape:window-y="0"
objecttolerance="17"
inkscape:snap-guide="true"
gridtolerance="10000"
guidetolerance="10000"
inkscape:snap-bbox="true"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-center="false"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2402"
visible="true"
enabled="true"
units="mm"
spacingx="8.304626"
spacingy="8.304626"
dotted="false"
empspacing="4"
originx="-73.55671"
originy="31.224639" />
</sodipodi:namedview>
<metadata
id="metadata6">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<path
style="fill:none;stroke:url(#linearGradient1638);stroke-width:8;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1"
d="M 7.9999867,627.65058 H 94.93653 121.13354 l 9.9621,-5.6685 c 4.52054,-2.57221 20.74726,-13.12283 31.34534,-25.43043 13.10167,-15.21505 27.49032,-22.90786 46.11471,-19.55876 22.99882,4.13571 27.41468,17.55903 51.02657,40.16478 l 10.95991,10.49291 h 5.92708 c 36.84343,0 64.06481,0.34897 65.75554,0.84298 2.27231,0.66392 5.74057,5.20632 16.32855,21.38548 12.6954,19.3995 15.70471,22.70609 16.5054,18.136 0.16456,-0.93925 9.39461,-113.87893 20.51122,-250.9771 11.11659,-137.09814 20.48692,-250.16408 20.82295,-251.25762 1.68926,-5.49776 13.16936,-6.10313 16.17054,-0.85273 1.22149,2.13694 6.46388,70.18379 21.15392,274.58004 12.12984,168.77407 19.99104,272.09336 20.74681,272.67419 0.85147,0.6544 1.48607,0.6003 2.1137,-0.18013 0.49329,-0.61346 6.7651,-19.14034 13.93735,-41.17098 10.67129,-32.77844 13.49653,-40.33948 15.55091,-41.6179 2.34488,-1.4592 28.81112,-1.56223 39.04422,-1.56223 h 55.51492 l 14.21797,-12.66341 c 17.50805,-15.59377 27.23928,-25.96789 41.93734,-35.10248 22.03326,-13.69337 41.59352,-21.18141 55.32992,-21.18141 7.44796,0 16.72078,2.21215 24.5923,5.86677 18.36977,8.52887 26.22496,18.32889 46.02819,50.20463 l 7.99933,12.8759 h 5.33101 69.86665"
id="logo-signal"
sodipodi:nodetypes="cccsssscssssssssssssscsssssccc"
inkscape:label="curve" />
</svg>

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 KiB

After

Width:  |  Height:  |  Size: 548 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 KiB

After

Width:  |  Height:  |  Size: 459 KiB

View File

@ -1,4 +1,4 @@
# Generated by Django 4.2.3 on 2023-07-30 21:15 # Generated by Django 4.2.3 on 2023-08-24 13:02
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models

View File

@ -370,40 +370,10 @@
} }
/* PlayfairDisplaySC */ /* Iceland */
@font-face { @font-face {
font-family: 'PlayfairDisplaySC'; font-family: 'Iceland';
src: url('/assets/fonts/playfairdisplaysc/playfairdisplaysc-regular.ttf') format('truetype'); src: url('/assets/fonts/iceland/iceland-regular.ttf') format('truetype');
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
} }
@font-face {
font-family: 'PlayfairDisplaySC';
src: url('/assets/fonts/playfairdisplaysc/playfairdisplaysc-regular-italic.ttf') format('truetype');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'PlayfairDisplaySC';
src: url('/assets/fonts/playfairdisplaysc/playfairdisplaysc-bold.ttf') format('truetype');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'PlayfairDisplaySC';
src: url('/assets/fonts/playfairdisplaysc/playfairdisplaysc-bold-italic.ttf') format('truetype');
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: 'PlayfairDisplaySC';
src: url('/assets/fonts/playfairdisplaysc/playfairdisplaysc-black.ttf') format('truetype');
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: 'PlayfairDisplaySC';
src: url('/assets/fonts/playfairdisplaysc/playfairdisplaysc-black-italic.ttf') format('truetype');
font-weight: 900;
font-style: italic;
}

View File

@ -17,8 +17,9 @@ h1 {
} }
h1.title { h1.title {
@apply font-title font-bold; @apply font-title;
@apply underline text-primary-200/90; font-weight: 400;
@apply text-accent-400;
} }
h2 { h2 {
@ -236,85 +237,46 @@ div.call-to-action-box {
} }
} }
#logo-wings {
animation: logowings 2s ease-in-out infinite alternate;
}
#logo-wings--subtle {
animation: logowings-subtle 2s ease-in-out infinite alternate;
}
#logo-heart { #logo-heart {
animation: logoheart 1s linear infinite; animation: logoheart 2s linear infinite;
transform-origin: center; transform-origin: center;
} }
#logo-heart--subtle { #logo-heart--subtle {
animation: logoheart-subtle 1s linear infinite; animation: logoheart-subtle 1s linear infinite;
transform-origin: center; transform-origin: center;
} }
#logo-blips { #logo-signal {
animation: logoblips 6s linear infinite; --maxStrokeLength: 2001.85791015625;
transform-origin: bottom; --maxStrokeLengthNeg: -2001.85791015625;
transform-box: fill-box; stroke-dasharray: var(--maxStrokeLength);
} stroke-dashoffset: var(--maxStrokeLength);
#logo-blips--subtle { animation: logosignal 2s linear infinite;
animation: logoblips-subtle 6s linear infinite;
transform-origin: bottom;
transform-box: fill-box;
}
@keyframes logowings {
0% {
transform: translateY(0%);
}
100% {
transform: translateY(5%);
}
}
@keyframes logowings-subtle {
0% {
transform: translateY(5%);
}
100% {
transform: translateY(8%);
}
} }
@keyframes logoheart { @keyframes logoheart {
0%, 25%, 50%, 100% { 0%, 38%, 55%, 65%, 100% {
transform: scale(100%); transform: scale(100%);
} }
12%, 37% { 48% {
transform: scale(105%); transform: scale(103%);
}
60% {
transform: scale(101%);
} }
} }
@keyframes logoheart-subtle { @keyframes logosignal {
0%, 25%, 50%, 100% { 0%, 40% {
transform: scale(100%); stroke-dasharray: var(--maxStrokeLength);
stroke-dashoffset: var(--maxStrokeLength);
} }
50% {
12%, 37% { stroke-dasharray: 1000;
transform: scale(102%); stroke-dashoffset: 0;
} }
} 80%, 100% {
stroke-dasharray: var(--maxStrokeLength);
@keyframes logoblips { stroke-dashoffset: var(--maxStrokeLengthNeg);
0% {
transform: rotateY(0deg)
}
5%, 100% {
transform: rotateY(360deg);
}
}
@keyframes logoblips-subtle {
0% {
transform: rotateY(0deg)
}
5%, 100% {
transform: rotateY(360deg);
} }
} }

Binary file not shown.

View File

@ -30,4 +30,4 @@ RUN pip install -r requirements.txt
# Run supervisord # Run supervisord
EXPOSE 8000/tcp EXPOSE 8000/tcp
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

View File

@ -43,6 +43,8 @@ services:
- ./app/withings/:/app/withings:ro - ./app/withings/:/app/withings:ro
environment: environment:
TZ: ${TIMEZONE} TZ: ${TIMEZONE}
DJANGO_DEBUG_MODE: ${DJANGO_DEBUG_MODE}
DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY}
PG_NAME: ${PG_NAME} PG_NAME: ${PG_NAME}
PG_USER: ${PG_USER} PG_USER: ${PG_USER}
PG_PASSWORD: ${PG_PASSWORD} PG_PASSWORD: ${PG_PASSWORD}

View File

@ -8,7 +8,7 @@ export default {
serif: ["Lora"], serif: ["Lora"],
mono: ["SourceCodePro"], mono: ["SourceCodePro"],
accent: ["Kanit"], accent: ["Kanit"],
title: ["PlayfairDisplaySC"] title: ["Iceland"]
}, },
colors: { colors: {
transparent: "transparent", transparent: "transparent",
@ -121,6 +121,10 @@ export default {
screens: { screens: {
'3xl': '1920px', '3xl': '1920px',
'4xl': '3840px', '4xl': '3840px',
},
backgroundImage: {
"hand-landscape": "url('../../app/static/medwings/images/misc/hand-landscape.webp')",
"hand-portrait": "url('../../app/static/medwings/images/misc/hand-portrait.webp')",
} }
}, },
}, },