feat: Add various verbose names and helptexts
This commit is contained in:
@@ -0,0 +1,140 @@
|
|||||||
|
# Generated by Django 5.2.1 on 2025-09-06 11:11
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('fellchensammlung', '0063_adoptionnotice_adoption_process'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='animal',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=200, verbose_name='Name'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='animal',
|
||||||
|
name='photos',
|
||||||
|
field=models.ManyToManyField(blank=True, to='fellchensammlung.image', verbose_name='Fotos'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='animal',
|
||||||
|
name='sex',
|
||||||
|
field=models.CharField(choices=[('F', 'Weiblich'), ('M', 'Männlich'), ('M_N', 'Männlich, kastriert'), ('F_N', 'Weiblich, kastriert'), ('I', 'Intergeschlechtlich')], max_length=20, verbose_name='Geschlecht'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='comment',
|
||||||
|
name='adoption_notice',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='fellchensammlung.adoptionnotice', verbose_name='Vermittlung'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='image',
|
||||||
|
name='alt_text',
|
||||||
|
field=models.TextField(help_text='Beschreibe das Bild für blinde und sehbehinderte Menschen', max_length=2000, verbose_name='Alternativtext'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='city',
|
||||||
|
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Stadt'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='county',
|
||||||
|
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Landkreis'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='housenumber',
|
||||||
|
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='Hausnummer'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='latitude',
|
||||||
|
field=models.FloatField(verbose_name='Breitengrad'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='longitude',
|
||||||
|
field=models.FloatField(verbose_name='Längengrad'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='postcode',
|
||||||
|
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='Postleitzahl'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='location',
|
||||||
|
name='street',
|
||||||
|
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Straße'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='notification',
|
||||||
|
name='user_to_notify',
|
||||||
|
field=models.ForeignKey(help_text='Useraccount der benachrichtigt wird', on_delete=django.db.models.deletion.CASCADE, related_name='user', to=settings.AUTH_USER_MODEL, verbose_name='Empfänger*in'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='report',
|
||||||
|
name='created_at',
|
||||||
|
field=models.DateTimeField(auto_now_add=True, verbose_name='Erstellt am'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='report',
|
||||||
|
name='updated_at',
|
||||||
|
field=models.DateTimeField(auto_now=True, verbose_name='Zuletzt geändert am'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='rule',
|
||||||
|
name='created_at',
|
||||||
|
field=models.DateTimeField(auto_now_add=True, verbose_name='Erstellt am'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='rule',
|
||||||
|
name='language',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='fellchensammlung.language', verbose_name='Sprache'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='rule',
|
||||||
|
name='rule_identifier',
|
||||||
|
field=models.CharField(help_text='Ein eindeutiger Identifikator der Regel. Ein Regelobjekt derselben Regel in einer anderen Sprache muss den gleichen Identifikator haben', max_length=24, verbose_name='Regel-ID'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='rule',
|
||||||
|
name='rule_text',
|
||||||
|
field=models.TextField(verbose_name='Regeltext'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='rule',
|
||||||
|
name='updated_at',
|
||||||
|
field=models.DateTimeField(auto_now=True, verbose_name='Zuletzt geändert am'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='searchsubscription',
|
||||||
|
name='created_at',
|
||||||
|
field=models.DateTimeField(auto_now_add=True, verbose_name='Erstellt am'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='searchsubscription',
|
||||||
|
name='sex',
|
||||||
|
field=models.CharField(choices=[('F', 'Weiblich'), ('M', 'Männlich'), ('M_N', 'Männlich, kastriert'), ('F_N', 'Weiblich Kastriert'), ('I', 'Intergeschlechtlich'), ('A', 'Alle')], max_length=20, verbose_name='Geschlecht'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='searchsubscription',
|
||||||
|
name='updated_at',
|
||||||
|
field=models.DateTimeField(auto_now=True, verbose_name='Zuletzt geändert am'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='subscriptions',
|
||||||
|
name='adoption_notice',
|
||||||
|
field=models.ForeignKey(help_text='Vermittlung die abonniert wurde', on_delete=django.db.models.deletion.CASCADE, to='fellchensammlung.adoptionnotice', verbose_name='Vermittlung'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='text',
|
||||||
|
name='title',
|
||||||
|
field=models.CharField(max_length=100, verbose_name='Titel'),
|
||||||
|
),
|
||||||
|
]
|
@@ -38,14 +38,14 @@ class Language(models.Model):
|
|||||||
|
|
||||||
class Location(models.Model):
|
class Location(models.Model):
|
||||||
place_id = models.CharField(max_length=200) # OSM id
|
place_id = models.CharField(max_length=200) # OSM id
|
||||||
latitude = models.FloatField()
|
latitude = models.FloatField(verbose_name=_("Breitengrad"))
|
||||||
longitude = models.FloatField()
|
longitude = models.FloatField(verbose_name=_("Längengrad"))
|
||||||
name = models.CharField(max_length=2000)
|
name = models.CharField(max_length=2000)
|
||||||
city = models.CharField(max_length=200, blank=True, null=True)
|
city = models.CharField(max_length=200, blank=True, null=True, verbose_name=_('Stadt'))
|
||||||
housenumber = models.CharField(max_length=20, blank=True, null=True)
|
housenumber = models.CharField(max_length=20, blank=True, null=True, verbose_name=_("Hausnummer"))
|
||||||
postcode = models.CharField(max_length=20, blank=True, null=True)
|
postcode = models.CharField(max_length=20, blank=True, null=True, verbose_name=_("Postleitzahl"))
|
||||||
street = models.CharField(max_length=200, blank=True, null=True)
|
street = models.CharField(max_length=200, blank=True, null=True, verbose_name=_("Straße"))
|
||||||
county = models.CharField(max_length=200, blank=True, null=True)
|
county = models.CharField(max_length=200, blank=True, null=True, verbose_name=_("Landkreis"))
|
||||||
# Country code as per ISO 3166-1 alpha-2
|
# Country code as per ISO 3166-1 alpha-2
|
||||||
# https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
|
# https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
|
||||||
countrycode = models.CharField(max_length=2, verbose_name=_("Ländercode"),
|
countrycode = models.CharField(max_length=2, verbose_name=_("Ländercode"),
|
||||||
@@ -343,7 +343,8 @@ class User(AbstractUser):
|
|||||||
|
|
||||||
class Image(models.Model):
|
class Image(models.Model):
|
||||||
image = models.ImageField(upload_to='images')
|
image = models.ImageField(upload_to='images')
|
||||||
alt_text = models.TextField(max_length=2000, verbose_name=_('Alternativtext'))
|
alt_text = models.TextField(max_length=2000, verbose_name=_('Alternativtext'),
|
||||||
|
help_text=_("Beschreibe das Bild für blinde und sehbehinderte Menschen"))
|
||||||
owner = models.ForeignKey(User, on_delete=models.CASCADE)
|
owner = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True)
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
@@ -575,13 +576,14 @@ class Animal(models.Model):
|
|||||||
verbose_name_plural = _('Tiere')
|
verbose_name_plural = _('Tiere')
|
||||||
|
|
||||||
date_of_birth = models.DateField(verbose_name=_('Geburtsdatum'))
|
date_of_birth = models.DateField(verbose_name=_('Geburtsdatum'))
|
||||||
name = models.CharField(max_length=200)
|
name = models.CharField(max_length=200, verbose_name=_('Name'))
|
||||||
description = models.TextField(null=True, blank=True, verbose_name=_('Beschreibung'))
|
description = models.TextField(null=True, blank=True, verbose_name=_('Beschreibung'))
|
||||||
species = models.ForeignKey(Species, on_delete=models.PROTECT, verbose_name=_("Tierart"))
|
species = models.ForeignKey(Species, on_delete=models.PROTECT, verbose_name=_("Tierart"))
|
||||||
photos = models.ManyToManyField(Image, blank=True)
|
photos = models.ManyToManyField(Image, blank=True, verbose_name=_("Fotos"))
|
||||||
sex = models.CharField(
|
sex = models.CharField(
|
||||||
max_length=20,
|
max_length=20,
|
||||||
choices=SexChoices.choices,
|
choices=SexChoices.choices,
|
||||||
|
verbose_name=_("Geschlecht")
|
||||||
)
|
)
|
||||||
adoption_notice = models.ForeignKey(AdoptionNotice, on_delete=models.CASCADE)
|
adoption_notice = models.ForeignKey(AdoptionNotice, on_delete=models.CASCADE)
|
||||||
owner = models.ForeignKey(User, on_delete=models.CASCADE)
|
owner = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
@@ -646,10 +648,10 @@ class SearchSubscription(models.Model):
|
|||||||
|
|
||||||
owner = models.ForeignKey(User, on_delete=models.CASCADE)
|
owner = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
location = models.ForeignKey(Location, on_delete=models.PROTECT, null=True)
|
location = models.ForeignKey(Location, on_delete=models.PROTECT, null=True)
|
||||||
sex = models.CharField(max_length=20, choices=SexChoicesWithAll.choices)
|
sex = models.CharField(max_length=20, choices=SexChoicesWithAll.choices, verbose_name=_("Geschlecht"))
|
||||||
max_distance = models.IntegerField(choices=DistanceChoices.choices, null=True)
|
max_distance = models.IntegerField(choices=DistanceChoices.choices, null=True)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True, verbose_name=_("Zuletzt geändert am"))
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True, verbose_name=_("Erstellt am"))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if self.location and self.max_distance:
|
if self.location and self.max_distance:
|
||||||
@@ -670,12 +672,16 @@ class Rule(models.Model):
|
|||||||
title = models.CharField(max_length=200)
|
title = models.CharField(max_length=200)
|
||||||
|
|
||||||
# Markdown is allowed in rule text
|
# Markdown is allowed in rule text
|
||||||
rule_text = models.TextField()
|
rule_text = models.TextField(verbose_name=_("Regeltext"))
|
||||||
language = models.ForeignKey(Language, on_delete=models.PROTECT)
|
language = models.ForeignKey(Language, on_delete=models.PROTECT, verbose_name=_("Sprache"))
|
||||||
# Rule identifier allows to translate rules with the same identifier
|
# Rule identifier allows to translate rules with the same identifier
|
||||||
rule_identifier = models.CharField(max_length=24)
|
rule_identifier = models.CharField(max_length=24,
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
verbose_name=_("Regel-ID"),
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
help_text=_("Ein eindeutiger Identifikator der Regel. Ein Regelobjekt "
|
||||||
|
"derselben Regel in einer anderen Sprache muss den gleichen "
|
||||||
|
"Identifikator haben"))
|
||||||
|
updated_at = models.DateTimeField(auto_now=True, verbose_name=_("Zuletzt geändert am"))
|
||||||
|
created_at = models.DateTimeField(auto_now_add=True, verbose_name=_("Erstellt am"))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.title
|
return self.title
|
||||||
@@ -699,8 +705,8 @@ class Report(models.Model):
|
|||||||
status = models.CharField(max_length=30, choices=STATES)
|
status = models.CharField(max_length=30, choices=STATES)
|
||||||
reported_broken_rules = models.ManyToManyField(Rule, verbose_name=_("Regeln gegen die verstoßen wurde"))
|
reported_broken_rules = models.ManyToManyField(Rule, verbose_name=_("Regeln gegen die verstoßen wurde"))
|
||||||
user_comment = models.TextField(blank=True, verbose_name=_("Kommentar/Zusätzliche Information"))
|
user_comment = models.TextField(blank=True, verbose_name=_("Kommentar/Zusätzliche Information"))
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
updated_at = models.DateTimeField(auto_now=True, verbose_name=_("Zuletzt geändert am"))
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
created_at = models.DateTimeField(auto_now_add=True, verbose_name=_("Erstellt am"))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"[{self.status}]: {self.user_comment:.20}"
|
return f"[{self.status}]: {self.user_comment:.20}"
|
||||||
@@ -804,7 +810,7 @@ class Text(models.Model):
|
|||||||
"""
|
"""
|
||||||
Base class to store markdown content
|
Base class to store markdown content
|
||||||
"""
|
"""
|
||||||
title = models.CharField(max_length=100)
|
title = models.CharField(max_length=100, verbose_name=_("Titel"))
|
||||||
content = models.TextField(verbose_name="Inhalt")
|
content = models.TextField(verbose_name="Inhalt")
|
||||||
language = models.ForeignKey(Language, verbose_name="Sprache", on_delete=models.PROTECT)
|
language = models.ForeignKey(Language, verbose_name="Sprache", on_delete=models.PROTECT)
|
||||||
text_code = models.CharField(max_length=24, verbose_name="Text code", blank=True)
|
text_code = models.CharField(max_length=24, verbose_name="Text code", blank=True)
|
||||||
@@ -894,7 +900,7 @@ class Comment(models.Model):
|
|||||||
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_('Nutzer*in'))
|
user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_('Nutzer*in'))
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True)
|
||||||
adoption_notice = models.ForeignKey(AdoptionNotice, on_delete=models.CASCADE, verbose_name=_('AdoptionNotice'))
|
adoption_notice = models.ForeignKey(AdoptionNotice, on_delete=models.CASCADE, verbose_name=_('Vermittlung'))
|
||||||
text = models.TextField(verbose_name="Inhalt")
|
text = models.TextField(verbose_name="Inhalt")
|
||||||
reply_to = models.ForeignKey("self", verbose_name="Antwort auf", blank=True, null=True, on_delete=models.CASCADE)
|
reply_to = models.ForeignKey("self", verbose_name="Antwort auf", blank=True, null=True, on_delete=models.CASCADE)
|
||||||
|
|
||||||
@@ -922,7 +928,7 @@ class Notification(models.Model):
|
|||||||
user_to_notify = models.ForeignKey(User,
|
user_to_notify = models.ForeignKey(User,
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
verbose_name=_('Empfänger*in'),
|
verbose_name=_('Empfänger*in'),
|
||||||
help_text=_("Useraccount der Benachrichtigt wird"),
|
help_text=_("Useraccount der benachrichtigt wird"),
|
||||||
related_name='user')
|
related_name='user')
|
||||||
title = models.CharField(max_length=100, verbose_name=_("Titel"))
|
title = models.CharField(max_length=100, verbose_name=_("Titel"))
|
||||||
text = models.TextField(verbose_name="Inhalt")
|
text = models.TextField(verbose_name="Inhalt")
|
||||||
@@ -964,7 +970,8 @@ class Subscriptions(models.Model):
|
|||||||
verbose_name_plural = _("Abonnements")
|
verbose_name_plural = _("Abonnements")
|
||||||
|
|
||||||
owner = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_('Nutzer*in'))
|
owner = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_('Nutzer*in'))
|
||||||
adoption_notice = models.ForeignKey(AdoptionNotice, on_delete=models.CASCADE, verbose_name=_('AdoptionNotice'))
|
adoption_notice = models.ForeignKey(AdoptionNotice, on_delete=models.CASCADE, verbose_name=_('Vermittlung'),
|
||||||
|
help_text=_("Vermittlung die abonniert wurde"))
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user