deployment

This commit is contained in:
gw3000 2023-07-12 16:24:33 +02:00
parent 4f2e8277df
commit 8c6066176b
5 changed files with 49 additions and 184 deletions

View file

@ -1,6 +1,5 @@
# Generated by Django 4.2.2 on 2023-07-10 19:16 # Generated by Django 4.2.3 on 2023-07-12 12:34
import bird.models
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion import django.db.models.deletion
@ -12,145 +11,67 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('aviary', '0003_alter_aviary_condition'),
('rescuer', '0002_alter_rescuer_options_alter_rescuer_city_and_more'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL), migrations.swappable_dependency(settings.AUTH_USER_MODEL),
("aviary", "0003_alter_aviary_condition"),
("rescuer", "0001_initial"),
] ]
operations = [ operations = [
migrations.CreateModel( migrations.CreateModel(
name="Bird", name='Bird',
fields=[ fields=[
( ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
"id", ('name', models.CharField(max_length=256, unique=True, verbose_name='Bezeichnung')),
models.UUIDField( ('description', models.CharField(max_length=4096, verbose_name='Hilfetext')),
default=uuid.uuid4,
editable=False,
primary_key=True,
serialize=False,
),
),
("name", models.CharField(max_length=256, unique=True)),
(
"description",
models.CharField(max_length=4096, verbose_name="Hilfetext"),
),
], ],
options={ options={
"verbose_name": "Vogel", 'verbose_name': 'Vogel',
"verbose_name_plural": "Vögel", 'verbose_name_plural': 'Vögel',
}, },
), ),
migrations.CreateModel( migrations.CreateModel(
name="BirdStatus", name='BirdStatus',
fields=[ fields=[
("id", models.BigAutoField(primary_key=True, serialize=False)), ('id', models.BigAutoField(primary_key=True, serialize=False)),
("description", models.CharField(max_length=256, unique=True)), ('description', models.CharField(max_length=256, unique=True, verbose_name='Bezeichnung')),
], ],
options={ options={
"verbose_name": "Patientenstatus", 'verbose_name': 'Patientenstatus',
"verbose_name_plural": "Patientenstatus", 'verbose_name_plural': 'Patientenstatus',
}, },
), ),
migrations.CreateModel( migrations.CreateModel(
name="Circumstance", name='Circumstance',
fields=[ fields=[
("id", models.BigAutoField(primary_key=True, serialize=False)), ('id', models.BigAutoField(primary_key=True, serialize=False)),
("description", models.CharField(max_length=256)), ('description', models.CharField(max_length=256, verbose_name='Bezeichnung')),
], ],
options={ options={
"verbose_name": "Fundumstand", 'verbose_name': 'Fundumstand',
"verbose_name_plural": "Fundumstände", 'verbose_name_plural': 'Fundumstände',
}, },
), ),
migrations.CreateModel( migrations.CreateModel(
name="FallenBird", name='FallenBird',
fields=[ fields=[
( ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
"id", ('bird_identifier', models.CharField(max_length=256, verbose_name='Kennung')),
models.UUIDField( ('date_found', models.DateField(verbose_name='Datum des Fundes')),
default=uuid.uuid4, ('place', models.CharField(max_length=256, verbose_name='Ort des Fundes')),
editable=False, ('created', models.DateTimeField(auto_now_add=True, verbose_name='angelegt am')),
primary_key=True, ('updated', models.DateTimeField(auto_now=True, verbose_name='geändert am')),
serialize=False, ('diagnostic_finding', models.CharField(max_length=256, verbose_name='Diagnose bei Fund')),
), ('costs', models.DecimalField(decimal_places=2, max_digits=5, verbose_name='Kosten')),
), ('aviary', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='aviary.aviary', verbose_name='Voliere')),
( ('bird', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bird.bird', verbose_name='Patient')),
"bird_identifier", ('find_circumstances', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bird.circumstance', verbose_name='Fundumstände')),
models.CharField(max_length=256, verbose_name="Kennung"), ('rescuer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='rescuer.rescuer', verbose_name='Finder')),
), ('status', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='bird.birdstatus')),
("date_found", models.DateField(verbose_name="Datum des Fundes")), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Benutzer')),
(
"place",
models.CharField(max_length=256, verbose_name="Ort des Fundes"),
),
(
"created",
models.DateTimeField(auto_now_add=True, verbose_name="angelegt am"),
),
(
"updated",
models.DateTimeField(auto_now=True, verbose_name="geändert am"),
),
("diagnostic_finding", models.CharField(max_length=256)),
(
"costs",
models.JSONField(
default=bird.models.costs_default, verbose_name="Costs"
),
),
(
"aviary",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="aviary.aviary",
),
),
(
"bird",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="bird.bird",
verbose_name="Patient",
),
),
(
"find_circumstances",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="bird.circumstance",
),
),
(
"rescuer",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="rescuer.rescuer",
),
),
(
"status",
models.ForeignKey(
default=1,
on_delete=django.db.models.deletion.CASCADE,
to="bird.birdstatus",
),
),
(
"user",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to=settings.AUTH_USER_MODEL,
),
),
], ],
options={ options={
"verbose_name": "Patient", 'verbose_name': 'Patient',
"verbose_name_plural": "Patienten", 'verbose_name_plural': 'Patienten',
}, },
), ),
] ]

View file

@ -1,37 +0,0 @@
# Generated by Django 4.2.3 on 2023-07-12 06:59
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("bird", "0001_initial"),
]
operations = [
migrations.AlterField(
model_name="bird",
name="name",
field=models.CharField(
max_length=256, unique=True, verbose_name="Bezeichnung"
),
),
migrations.AlterField(
model_name="birdstatus",
name="description",
field=models.CharField(
max_length=256, unique=True, verbose_name="Bezeichnung"
),
),
migrations.AlterField(
model_name="circumstance",
name="description",
field=models.CharField(max_length=256, verbose_name="Bezeichnung"),
),
migrations.AlterField(
model_name="fallenbird",
name="costs",
field=models.DecimalField(decimal_places=2, max_digits=5),
),
]

View file

@ -1,19 +1,8 @@
"""
Django settings for core project.
Generated by 'django-admin startproject' using Django 4.2.2.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.2/ref/settings/
"""
import os import os
import environ
from pathlib import Path from pathlib import Path
import environ
env = environ.Env() env = environ.Env()
@ -112,17 +101,7 @@ WSGI_APPLICATION = "core.wsgi.application"
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases # https://docs.djangoproject.com/en/4.2/ref/settings/#databases
DATABASES = { DATABASES = {
"default": { "default": env.db(),
# "ENGINE": "django.db.backends.sqlite3",
# "NAME": BASE_DIR / "db.sqlite3",
# "ENGINE": "django.db.backends.postgresql",
# "NAME": "django_traefik",
# "USER": "django_traefik",
# "PASSWORD": "django_traefik",
# "HOST": "db",
# "PORT": "5432",
"default": env.db(),
}
} }
@ -162,6 +141,7 @@ USE_TZ = True
STATIC_URL = "static/" STATIC_URL = "static/"
STATICFILES_DIRS = [BASE_DIR / "static"] STATICFILES_DIRS = [BASE_DIR / "static"]
STATIC_ROOT = BASE_DIR / "staticfiles"
STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
# Default primary key field type # Default primary key field type

View file

@ -1,12 +1,13 @@
Django>=4.2 Django>=4.2
django-environ>=0.9
crispy-bootstrap5>=0.6 crispy-bootstrap5>=0.6
django-allauth>=0.50 django-allauth>=0.50
django-bootstrap-datepicker-plus>=4.0 django-bootstrap-datepicker-plus>=4.0
django-bootstrap-modal-forms>=2 django-bootstrap-modal-forms>=2
django-crispy-forms>=1 django-crispy-forms>=1
django-environ==0.9.0
django-environ>=0.9
django-jazzmin>=2.6.0 django-jazzmin>=2.6.0
environ>=1
gunicorn>=20.1 gunicorn>=20.1
names>=0.3.0 names>=0.3.0
psycopg2-binary>=2.9 psycopg2-binary>=2.9
whitenoise>=6.5

View file

@ -3,14 +3,14 @@ version: '3.8'
services: services:
web: web:
build: ./app build: ./app
command: bash -c 'while !</dev/tcp/db/5432; do sleep 1; done; python manage.py runserver 0.0.0.0:8000' command: bash -c 'while !</dev/tcp/db/5432; do sleep 1; done;python manage.py migrate;python manage.py loaddata fixtures/data.json; python manage.py runserver 0.0.0.0:8000'
volumes: volumes:
- ./app:/app - ./app:/app
expose: expose:
- 8000 - 8000
environment: environment:
- DEBUG=1 - DEBUG=1
- DATABASE_URL=postgresql://django_traefik:django_traefik@db:5432/django_traefik - DATABASE_URL=postgresql://django_fbf:django_fbf@db:5432/django_fbf
depends_on: depends_on:
- db - db
labels: labels:
@ -23,9 +23,9 @@ services:
expose: expose:
- 5432 - 5432
environment: environment:
- POSTGRES_USER=django_traefik - POSTGRES_USER=django_fbf
- POSTGRES_PASSWORD=django_traefik - POSTGRES_PASSWORD=django_fbf
- POSTGRES_DB=django_traefik - POSTGRES_DB=django_fbf
traefik: traefik:
image: traefik:v2.9.6 image: traefik:v2.9.6
ports: ports: