improve field naming, add cspell config
This commit is contained in:
parent
c899fd9200
commit
8762a51d27
6 changed files with 156 additions and 22 deletions
|
|
@ -4,11 +4,5 @@
|
|||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"cSpell.words": [
|
||||
"Reparateur",
|
||||
"Reparateure",
|
||||
"Reparateurs"
|
||||
]
|
||||
}
|
||||
"settings": {}
|
||||
}
|
||||
|
|
@ -74,8 +74,8 @@ Attribute:
|
|||
|
||||
Annahmen:
|
||||
|
||||
- Reparatuere sind immmer verfügbar, d.h. jeder Reparatuer wird zu einem neuen Repair-Café Termin automatisch hinzugefügt.
|
||||
- Reparatuere können alles reparieren. Greäte Kategorien, Skills, ... können später hinzugefügt werden.
|
||||
- Reparateure sind immer verfügbar, d.h. jeder Reparateur wird zu einem neuen Repair-Café Termin automatisch hinzugefügt.
|
||||
- Reparateure können alles reparieren. Geräte Kategorien, Skills, ... können später hinzugefügt werden.
|
||||
|
||||
### Organisator
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
"""
|
||||
Admin interface configuration for RepApp.
|
||||
"""
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import Organisator, Cafe, Question, Device, Reparateur, Appointment
|
||||
from .models import Organisator, Cafe, Question, Device, Reparateur, Appointment, Guest
|
||||
|
||||
admin.site.register(Organisator)
|
||||
admin.site.register(Cafe)
|
||||
admin.site.register(Question)
|
||||
admin.site.register(Guest)
|
||||
admin.site.register(Device)
|
||||
admin.site.register(Reparateur)
|
||||
admin.site.register(Appointment)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
# Generated by Django 4.2 on 2023-04-17 05:26
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('repapp', '0007_alter_device_phone_alter_device_residence'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Guest',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('identifier', models.CharField(max_length=200, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=200, verbose_name='Name')),
|
||||
('phone', models.CharField(max_length=200, verbose_name='Telefonnummer')),
|
||||
('residence', models.CharField(max_length=200, verbose_name='Wohnort')),
|
||||
('mail', models.CharField(max_length=200, verbose_name='eMail')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Gast',
|
||||
'verbose_name_plural': 'Gäste',
|
||||
},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='device',
|
||||
name='mail',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='device',
|
||||
name='owner',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='device',
|
||||
name='phone',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='device',
|
||||
name='residence',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='guestid',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='repapp.guest', verbose_name='Gast'),
|
||||
),
|
||||
]
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
# Generated by Django 4.2 on 2023-04-17 07:40
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('repapp', '0008_guest_remove_device_mail_remove_device_owner_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='appointment',
|
||||
old_name='cafeid',
|
||||
new_name='cafe_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='appointment',
|
||||
old_name='deviceid',
|
||||
new_name='device_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='appointment',
|
||||
old_name='reparateurid',
|
||||
new_name='reparateur_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='device',
|
||||
old_name='guestid',
|
||||
new_name='guest_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='question',
|
||||
old_name='deviceid',
|
||||
new_name='device_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='question',
|
||||
old_name='organisatorid',
|
||||
new_name='organisator_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='question',
|
||||
old_name='reparateurid',
|
||||
new_name='reparateur_id',
|
||||
),
|
||||
]
|
||||
|
|
@ -1,8 +1,14 @@
|
|||
"""
|
||||
This module implements the models of RepApp.
|
||||
"""
|
||||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class Cafe(models.Model):
|
||||
"""
|
||||
A Cafe is a "Repair-Café event.
|
||||
"""
|
||||
location = models.CharField(
|
||||
max_length=200, verbose_name=_("Ort"))
|
||||
event_date = models.DateField(verbose_name=_("Datum"))
|
||||
|
|
@ -16,6 +22,9 @@ class Cafe(models.Model):
|
|||
|
||||
|
||||
class Reparateur(models.Model):
|
||||
"""
|
||||
A Reparateur is a member of the Repair-Café who supports guests with fixing their devices.
|
||||
"""
|
||||
name = models.CharField(max_length=200, verbose_name=_("Name"))
|
||||
mail = models.CharField(max_length=200, verbose_name=_("eMail"))
|
||||
|
||||
|
|
@ -24,10 +33,13 @@ class Reparateur(models.Model):
|
|||
verbose_name_plural = _('Reparateure')
|
||||
|
||||
def __str__(self):
|
||||
return f'Reparatuer {self.name} (eMail: {self.mail})'
|
||||
return f'Reparateur {self.name} (eMail: {self.mail})'
|
||||
|
||||
|
||||
class Organisator(models.Model):
|
||||
"""
|
||||
A Organisator is a member of the Repair-Café who arranges repair appointments with guests.
|
||||
"""
|
||||
name = models.CharField(max_length=200, verbose_name=_("Name"))
|
||||
mail = models.CharField(max_length=200, verbose_name=_("eMail"))
|
||||
|
||||
|
|
@ -39,32 +51,55 @@ class Organisator(models.Model):
|
|||
return f'Organisator {self.name} (eMail: {self.mail})'
|
||||
|
||||
|
||||
class Device(models.Model):
|
||||
class Guest(models.Model):
|
||||
"""
|
||||
A guest is a owner of a broken device who wants support in context of a Repair-Café.
|
||||
"""
|
||||
identifier = models.CharField(max_length=200, verbose_name=_("ID"))
|
||||
owner = models.CharField(max_length=200, verbose_name=_("Besitzer"))
|
||||
name = models.CharField(max_length=200, verbose_name=_("Name"))
|
||||
phone = models.CharField(max_length=200, verbose_name=_("Telefonnummer"))
|
||||
residence = models.CharField(max_length=200, verbose_name=_("Wohnort"))
|
||||
mail = models.CharField(max_length=200, verbose_name=_("eMail"))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Gast')
|
||||
verbose_name_plural = _('Gäste')
|
||||
|
||||
def __str__(self):
|
||||
return f'Gast {self.name} (eMail: {self.mail})'
|
||||
|
||||
|
||||
class Device(models.Model):
|
||||
"""
|
||||
A Device is a broken device owned by a guest which shall be repaired during a Repair-Café.
|
||||
"""
|
||||
identifier = models.CharField(max_length=200, verbose_name=_("ID"))
|
||||
device = models.CharField(max_length=200, verbose_name=_("Gerät"))
|
||||
error = models.TextField(verbose_name=_("Fehler"))
|
||||
follow_up = models.BooleanField(verbose_name=_("Folgetermin"))
|
||||
guest_id = models.ForeignKey(
|
||||
Guest, on_delete=models.CASCADE, null=True, verbose_name=_("Gast"))
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Gerät')
|
||||
verbose_name_plural = _('Geräte')
|
||||
|
||||
def __str__(self):
|
||||
return f'Gerät {self.device} von {self.owner} (eMail: {self.mail})'
|
||||
return f'Gerät {self.device} von {self.guest_id.name}'
|
||||
|
||||
|
||||
class Appointment(models.Model):
|
||||
"""
|
||||
A Appointment is a match of a broken Device and a Reparateur during a Repair-Café
|
||||
with a defined time slot.
|
||||
"""
|
||||
time = models.TimeField(verbose_name=_("Zeit"))
|
||||
confirmed = models.BooleanField(verbose_name=_("bestätigt"))
|
||||
cafeid = models.ForeignKey(
|
||||
cafe_id = models.ForeignKey(
|
||||
Cafe, on_delete=models.CASCADE, verbose_name=_("Repair-Café"))
|
||||
reparateurid = models.ForeignKey(
|
||||
reparateur_id = models.ForeignKey(
|
||||
Reparateur, on_delete=models.CASCADE, verbose_name=_("Reparateur"))
|
||||
deviceid = models.ForeignKey(
|
||||
device_id = models.ForeignKey(
|
||||
Device, on_delete=models.CASCADE, null=True, verbose_name=_("Gerät"))
|
||||
|
||||
class Meta:
|
||||
|
|
@ -72,18 +107,21 @@ class Appointment(models.Model):
|
|||
verbose_name_plural = _('Termine')
|
||||
|
||||
def __str__(self):
|
||||
return f'Termin {self.cafeid.event_date} {self.time} für Gerät {self.deviceid.device} von {self.deviceid.owner}'
|
||||
return f'Termin {self.cafe_id.event_date} {self.time} für Gerät {self.device_id.device}'
|
||||
|
||||
|
||||
class Question(models.Model):
|
||||
"""
|
||||
A Question is a request for information form a Organisator or a Reparateur for a Device.
|
||||
"""
|
||||
question = models.TextField(verbose_name=_("Frage"))
|
||||
answer = models.TextField(verbose_name=_("Antwort"))
|
||||
date = models.DateField(verbose_name=_("Erstellungsdatum"))
|
||||
organisatorid = models.ForeignKey(
|
||||
organisator_id = models.ForeignKey(
|
||||
Organisator, on_delete=models.CASCADE, null=True, verbose_name=_("Organisator"))
|
||||
reparateurid = models.ForeignKey(
|
||||
reparateur_id = models.ForeignKey(
|
||||
Reparateur, on_delete=models.CASCADE, null=True, verbose_name=_("Reparateur"))
|
||||
deviceid = models.ForeignKey(
|
||||
device_id = models.ForeignKey(
|
||||
Device, on_delete=models.CASCADE, verbose_name=_("Gerät"))
|
||||
|
||||
class Meta:
|
||||
|
|
@ -91,4 +129,4 @@ class Question(models.Model):
|
|||
verbose_name_plural = _('Fragen')
|
||||
|
||||
def __str__(self):
|
||||
return f'Frage vom {self.date} zum Gerät {self.deviceid.device}'
|
||||
return f'Frage vom {self.date} zum Gerät {self.device_id.device}'
|
||||
|
|
|
|||
Reference in a new issue