language, rename models, add verbose names

This commit is contained in:
Tom Irgang 2023-04-16 20:48:19 +02:00
parent 7a66820a24
commit 6ecc96e347
5 changed files with 246 additions and 40 deletions

View file

@ -104,7 +104,7 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization
# https://docs.djangoproject.com/en/4.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'de'
TIME_ZONE = 'Europe/Berlin'

View file

@ -1,10 +1,10 @@
from django.contrib import admin
from .models import Organisator, Cafe, Frage, Gerät, Reparateur, Termin
from .models import Organisator, Cafe, Question, Device, Reparateur, Appointment
admin.site.register(Organisator)
admin.site.register(Cafe)
admin.site.register(Frage)
admin.site.register(Gerät)
admin.site.register(Question)
admin.site.register(Device)
admin.site.register(Reparateur)
admin.site.register(Termin)
admin.site.register(Appointment)

View file

@ -0,0 +1,153 @@
# Generated by Django 4.2 on 2023-04-16 18:44
import datetime
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('repapp', '0003_alter_frage_organisatorid_alter_frage_reparateurid_and_more'),
]
operations = [
migrations.CreateModel(
name='Appointment',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.TimeField(verbose_name='Zeit')),
('confirmed', models.BooleanField(verbose_name='bestätigt')),
],
options={
'verbose_name': 'Termin',
'verbose_name_plural': 'Termine',
},
),
migrations.CreateModel(
name='Device',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('identifier', models.CharField(max_length=200, verbose_name='ID')),
('owner', models.CharField(max_length=200, verbose_name='Besitzer')),
('mail', models.CharField(max_length=200, verbose_name='eMail')),
('device', models.CharField(max_length=200, verbose_name='Gerät')),
('error', models.TextField(verbose_name='Fehler')),
('follow_up', models.BooleanField(verbose_name='Folgetermin')),
],
options={
'verbose_name': 'Gerät',
'verbose_name_plural': 'Geräte',
},
),
migrations.CreateModel(
name='Question',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('question', models.TextField(verbose_name='Frage')),
('answer', models.TextField(verbose_name='Antwort')),
('date', models.DateField(verbose_name='Erstellungsdatum')),
('deviceid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='repapp.device', verbose_name='Gerät')),
],
options={
'verbose_name': 'Frage',
'verbose_name_plural': 'Fragen',
},
),
migrations.RemoveField(
model_name='termin',
name='cafeid',
),
migrations.RemoveField(
model_name='termin',
name='gerätid',
),
migrations.RemoveField(
model_name='termin',
name='reparateurid',
),
migrations.AlterModelOptions(
name='cafe',
options={'verbose_name': 'Repair-Café', 'verbose_name_plural': 'Repair-Cafés'},
),
migrations.AlterModelOptions(
name='organisator',
options={'verbose_name': 'Organisator', 'verbose_name_plural': 'Organisatoren'},
),
migrations.AlterModelOptions(
name='reparateur',
options={'verbose_name': 'Reparateur', 'verbose_name_plural': 'Reparateure'},
),
migrations.RemoveField(
model_name='cafe',
name='datum',
),
migrations.RemoveField(
model_name='cafe',
name='ort',
),
migrations.AddField(
model_name='cafe',
name='event_date',
field=models.DateField(default=datetime.date(2023, 4, 16), verbose_name='Datum'),
),
migrations.AddField(
model_name='cafe',
name='location',
field=models.CharField(default='', max_length=200, verbose_name='Ort'),
),
migrations.AlterField(
model_name='organisator',
name='mail',
field=models.CharField(max_length=200, verbose_name='eMail'),
),
migrations.AlterField(
model_name='organisator',
name='name',
field=models.CharField(max_length=200, verbose_name='Name'),
),
migrations.AlterField(
model_name='reparateur',
name='mail',
field=models.CharField(max_length=200, verbose_name='eMail'),
),
migrations.AlterField(
model_name='reparateur',
name='name',
field=models.CharField(max_length=200, verbose_name='Name'),
),
migrations.DeleteModel(
name='Frage',
),
migrations.DeleteModel(
name='Gerät',
),
migrations.DeleteModel(
name='Termin',
),
migrations.AddField(
model_name='question',
name='organisatorid',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='repapp.organisator', verbose_name='Organisator'),
),
migrations.AddField(
model_name='question',
name='reparateurid',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='repapp.reparateur', verbose_name='Reparateur'),
),
migrations.AddField(
model_name='appointment',
name='cafeid',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='repapp.cafe', verbose_name='Repair-Café'),
),
migrations.AddField(
model_name='appointment',
name='deviceid',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='repapp.device', verbose_name='Gerät'),
),
migrations.AddField(
model_name='appointment',
name='reparateurid',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='repapp.reparateur', verbose_name='Reparateur'),
),
]

View file

@ -0,0 +1,23 @@
# Generated by Django 4.2 on 2023-04-16 18:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('repapp', '0004_appointment_device_question_remove_termin_cafeid_and_more'),
]
operations = [
migrations.AlterField(
model_name='cafe',
name='event_date',
field=models.DateField(verbose_name='Datum'),
),
migrations.AlterField(
model_name='cafe',
name='location',
field=models.CharField(max_length=200, verbose_name='Ort'),
),
]

View file

@ -1,62 +1,92 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
class Cafe(models.Model):
ort = models.CharField(max_length=200)
datum = models.DateField()
location = models.CharField(
max_length=200, verbose_name=_("Ort"))
event_date = models.DateField(verbose_name=_("Datum"))
class Meta:
verbose_name = _('Repair-Café')
verbose_name_plural = _('Repair-Cafés')
def __str__(self):
return f'Repair-Café am {self.datum} (Ort: {self.ort})'
return f'Repair-Café am {self.event_date} (Ort: {self.location})'
class Reparateur(models.Model):
name = models.CharField(max_length=200)
mail = models.CharField(max_length=200)
name = models.CharField(max_length=200, verbose_name=_("Name"))
mail = models.CharField(max_length=200, verbose_name=_("eMail"))
class Meta:
verbose_name = _('Reparateur')
verbose_name_plural = _('Reparateure')
def __str__(self):
return f'Reparatuer {self.name} (eMail: {self.mail})'
class Organisator(models.Model):
name = models.CharField(max_length=200)
mail = models.CharField(max_length=200)
name = models.CharField(max_length=200, verbose_name=_("Name"))
mail = models.CharField(max_length=200, verbose_name=_("eMail"))
class Meta:
verbose_name = _('Organisator')
verbose_name_plural = _('Organisatoren')
def __str__(self):
return f'Organisator {self.name} (eMail: {self.mail})'
class Gerät(models.Model):
identifier = models.CharField(max_length=200)
besitzer = models.CharField(max_length=200)
mail = models.CharField(max_length=200)
gerät = models.CharField(max_length=200)
fehler = models.TextField()
folgetermin = models.BooleanField()
class Device(models.Model):
identifier = models.CharField(max_length=200, verbose_name=_("ID"))
owner = models.CharField(max_length=200, verbose_name=_("Besitzer"))
mail = models.CharField(max_length=200, verbose_name=_("eMail"))
device = models.CharField(max_length=200, verbose_name=_("Gerät"))
error = models.TextField(verbose_name=_("Fehler"))
follow_up = models.BooleanField(verbose_name=_("Folgetermin"))
class Meta:
verbose_name = _('Gerät')
verbose_name_plural = _('Geräte')
def __str__(self):
return f'Gerät {self.gerät} von {self.besitzer} (eMail: {self.mail})'
return f'Gerät {self.device} von {self.owner} (eMail: {self.mail})'
class Termin(models.Model):
uhrzeit = models.TimeField()
bestätigt = models.BooleanField()
cafeid = models.ForeignKey(Cafe, on_delete=models.CASCADE)
reparateurid = models.ForeignKey(Reparateur, on_delete=models.CASCADE)
gerätid = models.ForeignKey(Gerät, on_delete=models.CASCADE, null=True)
def __str__(self):
return f'Termin {self.cafeid.datum} {self.uhrzeit} für Gerät {self.gerätid.gerät} von {self.gerätid.besitzer}'
class Frage(models.Model):
frage = models.TextField()
antwort = models.TextField()
datum = models.DateField()
organisatorid = models.ForeignKey(
Organisator, on_delete=models.CASCADE, null=True)
class Appointment(models.Model):
time = models.TimeField(verbose_name=_("Zeit"))
confirmed = models.BooleanField(verbose_name=_("bestätigt"))
cafeid = models.ForeignKey(
Cafe, on_delete=models.CASCADE, verbose_name=_("Repair-Café"))
reparateurid = models.ForeignKey(
Reparateur, on_delete=models.CASCADE, null=True)
gerätid = models.ForeignKey(Gerät, on_delete=models.CASCADE)
Reparateur, on_delete=models.CASCADE, verbose_name=_("Reparateur"))
deviceid = models.ForeignKey(
Device, on_delete=models.CASCADE, null=True, verbose_name=_("Gerät"))
class Meta:
verbose_name = _('Termin')
verbose_name_plural = _('Termine')
def __str__(self):
return f'Frage vom {self.datum} zum Gerät {self.gerätid.gerät}'
return f'Termin {self.cafeid.event_date} {self.time} für Gerät {self.deviceid.device} von {self.deviceid.owner}'
class Question(models.Model):
question = models.TextField(verbose_name=_("Frage"))
answer = models.TextField(verbose_name=_("Antwort"))
date = models.DateField(verbose_name=_("Erstellungsdatum"))
organisatorid = models.ForeignKey(
Organisator, on_delete=models.CASCADE, null=True, verbose_name=_("Organisator"))
reparateurid = models.ForeignKey(
Reparateur, on_delete=models.CASCADE, null=True, verbose_name=_("Reparateur"))
deviceid = models.ForeignKey(
Device, on_delete=models.CASCADE, verbose_name=_("Gerät"))
class Meta:
verbose_name = _('Frage')
verbose_name_plural = _('Fragen')
def __str__(self):
return f'Frage vom {self.date} zum Gerät {self.deviceid.device}'