language, rename models, add verbose names
This commit is contained in:
parent
7a66820a24
commit
6ecc96e347
5 changed files with 246 additions and 40 deletions
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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'),
|
||||
),
|
||||
]
|
||||
|
|
@ -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'),
|
||||
),
|
||||
]
|
||||
|
|
@ -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}'
|
||||
|
|
|
|||
Reference in a new issue