From 1881afe825461779232188c576a3e7b151f4d984 Mon Sep 17 00:00:00 2001 From: Stefan Wehrmeyer Date: Mon, 28 Feb 2022 10:55:22 +0100 Subject: [PATCH] Add fields, add verbose_name to all fields --- .../migrations/0003_auto_20220228_1051.py | 285 ++++++++++++++++++ froide_govplan/models.py | 108 +++++-- 2 files changed, 363 insertions(+), 30 deletions(-) create mode 100644 froide_govplan/migrations/0003_auto_20220228_1051.py diff --git a/froide_govplan/migrations/0003_auto_20220228_1051.py b/froide_govplan/migrations/0003_auto_20220228_1051.py new file mode 100644 index 0000000..2696dce --- /dev/null +++ b/froide_govplan/migrations/0003_auto_20220228_1051.py @@ -0,0 +1,285 @@ +# Generated by Django 3.2.12 on 2022-02-28 09:51 + +import django.db.models.deletion +import django.utils.timezone +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ("publicbody", "0039_publicbody_alternative_emails"), + ("organization", "0001_initial"), + ("auth", "0012_alter_user_first_name_max_length"), + ("foirequest", "0054_alter_foirequest_options"), + ("froide_govplan", "0002_auto_20220215_2113"), + ] + + operations = [ + migrations.AddField( + model_name="governmentplan", + name="due_date", + field=models.DateField(blank=True, null=True, verbose_name="due date"), + ), + migrations.AddField( + model_name="governmentplan", + name="measure", + field=models.CharField(blank=True, max_length=255, verbose_name="measure"), + ), + migrations.AddField( + model_name="governmentplan", + name="quote", + field=models.TextField(blank=True, verbose_name="quote"), + ), + migrations.AlterField( + model_name="government", + name="description", + field=models.TextField(blank=True, verbose_name="description"), + ), + migrations.AlterField( + model_name="government", + name="end_date", + field=models.DateField(blank=True, null=True, verbose_name="end date"), + ), + migrations.AlterField( + model_name="government", + name="jurisdiction", + field=models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="publicbody.jurisdiction", + verbose_name="jurisdiction", + ), + ), + migrations.AlterField( + model_name="government", + name="name", + field=models.CharField(max_length=255, verbose_name="name"), + ), + migrations.AlterField( + model_name="government", + name="planning_document", + field=models.URLField(blank=True, verbose_name="planning document"), + ), + migrations.AlterField( + model_name="government", + name="public", + field=models.BooleanField(default=False, verbose_name="is public?"), + ), + migrations.AlterField( + model_name="government", + name="slug", + field=models.SlugField(max_length=255, unique=True, verbose_name="slug"), + ), + migrations.AlterField( + model_name="government", + name="start_date", + field=models.DateField(blank=True, null=True, verbose_name="start date"), + ), + migrations.AlterField( + model_name="governmentplan", + name="description", + field=models.TextField(blank=True, verbose_name="description"), + ), + migrations.AlterField( + model_name="governmentplan", + name="government", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to="froide_govplan.government", + verbose_name="government", + ), + ), + migrations.AlterField( + model_name="governmentplan", + name="group", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="auth.group", + verbose_name="group", + ), + ), + migrations.AlterField( + model_name="governmentplan", + name="organization", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="organization.organization", + verbose_name="organization", + ), + ), + migrations.AlterField( + model_name="governmentplan", + name="public", + field=models.BooleanField(default=False, verbose_name="is public?"), + ), + migrations.AlterField( + model_name="governmentplan", + name="rating", + field=models.IntegerField( + blank=True, + choices=[ + (1, "terrible"), + (2, "bad"), + (3, "OK"), + (4, "good"), + (5, "excellent"), + ], + null=True, + verbose_name="rating", + ), + ), + migrations.AlterField( + model_name="governmentplan", + name="reference", + field=models.CharField( + blank=True, max_length=255, verbose_name="reference" + ), + ), + migrations.AlterField( + model_name="governmentplan", + name="responsible_publicbody", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="publicbody.publicbody", + verbose_name="responsible public body", + ), + ), + migrations.AlterField( + model_name="governmentplan", + name="slug", + field=models.SlugField(max_length=255, unique=True, verbose_name="slug"), + ), + migrations.AlterField( + model_name="governmentplan", + name="status", + field=models.CharField( + choices=[ + ("not_started", "not started"), + ("started", "started"), + ("partially_implemented", "partially implemented"), + ("implemented", "implemented"), + ("deferred", "deferred"), + ], + default="not_started", + max_length=25, + verbose_name="status", + ), + ), + migrations.AlterField( + model_name="governmentplan", + name="title", + field=models.CharField(max_length=255, verbose_name="title"), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="content", + field=models.TextField(blank=True, verbose_name="content"), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="foirequest", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="foirequest.foirequest", + verbose_name="FOI request", + ), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="organization", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to="organization.organization", + verbose_name="organization", + ), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="plan", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="updates", + to="froide_govplan.governmentplan", + verbose_name="plan", + ), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="public", + field=models.BooleanField(default=False, verbose_name="is public?"), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="rating", + field=models.IntegerField( + blank=True, + choices=[ + (1, "terrible"), + (2, "bad"), + (3, "OK"), + (4, "good"), + (5, "excellent"), + ], + null=True, + verbose_name="rating", + ), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="status", + field=models.CharField( + blank=True, + choices=[ + ("not_started", "not started"), + ("started", "started"), + ("partially_implemented", "partially implemented"), + ("implemented", "implemented"), + ("deferred", "deferred"), + ], + default="", + max_length=25, + verbose_name="status", + ), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="timestamp", + field=models.DateTimeField( + default=django.utils.timezone.now, verbose_name="timestamp" + ), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="title", + field=models.CharField(blank=True, max_length=1024, verbose_name="title"), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="url", + field=models.URLField(blank=True, verbose_name="URL"), + ), + migrations.AlterField( + model_name="governmentplanupdate", + name="user", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="user", + ), + ), + ] diff --git a/froide_govplan/models.py b/froide_govplan/models.py index ac325f3..6f50e46 100644 --- a/froide_govplan/models.py +++ b/froide_govplan/models.py @@ -36,17 +36,22 @@ class PlanRating(models.IntegerChoices): class Government(models.Model): - name = models.CharField(max_length=255) - slug = models.SlugField(max_length=255, unique=True) + name = models.CharField(max_length=255, verbose_name=_("name")) + slug = models.SlugField(max_length=255, unique=True, verbose_name=_("slug")) - public = models.BooleanField(default=False) - jurisdiction = models.ForeignKey(Jurisdiction, null=True, on_delete=models.SET_NULL) - description = models.TextField(blank=True) + public = models.BooleanField(default=False, verbose_name=_("is public?")) + jurisdiction = models.ForeignKey( + Jurisdiction, + null=True, + on_delete=models.SET_NULL, + verbose_name=_("jurisdiction"), + ) + description = models.TextField(blank=True, verbose_name=_("description")) - start_date = models.DateField(null=True, blank=True) - end_date = models.DateField(null=True, blank=True) + start_date = models.DateField(null=True, blank=True, verbose_name=_("start date")) + end_date = models.DateField(null=True, blank=True, verbose_name=_("end date")) - planning_document = models.URLField(blank=True) + planning_document = models.URLField(blank=True, verbose_name=_("planning document")) class Meta: verbose_name = _("Government") @@ -68,9 +73,11 @@ class CategorizedGovernmentPlan(TaggedItemBase): class GovernmentPlan(models.Model): - government = models.ForeignKey(Government, on_delete=models.CASCADE) - title = models.CharField(max_length=255) - slug = models.SlugField(max_length=255, unique=True) + government = models.ForeignKey( + Government, on_delete=models.CASCADE, verbose_name=_("government") + ) + title = models.CharField(max_length=255, verbose_name=_("title")) + slug = models.SlugField(max_length=255, unique=True, verbose_name=_("slug")) image = FilerImageField( null=True, @@ -80,28 +87,48 @@ class GovernmentPlan(models.Model): on_delete=models.SET_NULL, ) - description = models.TextField(blank=True) - public = models.BooleanField(default=False) + description = models.TextField(blank=True, verbose_name=_("description")) + quote = models.TextField(blank=True, verbose_name=_("quote")) + public = models.BooleanField(default=False, verbose_name=_("is public?")) + due_date = models.DateField(null=True, blank=True, verbose_name=_("due date")) + measure = models.CharField(max_length=255, blank=True, verbose_name=_("measure")) status = models.CharField( - max_length=25, choices=PlanStatus.choices, default="needs_approval" + max_length=25, + choices=PlanStatus.choices, + default="not_started", + verbose_name=_("status"), + ) + rating = models.IntegerField( + choices=PlanRating.choices, null=True, blank=True, verbose_name=_("rating") ) - rating = models.IntegerField(choices=PlanRating.choices, null=True, blank=True) - reference = models.CharField(max_length=255, blank=True) + reference = models.CharField( + max_length=255, blank=True, verbose_name=_("reference") + ) categories = TaggableManager( through=CategorizedGovernmentPlan, verbose_name=_("categories"), blank=True ) responsible_publicbody = models.ForeignKey( - PublicBody, null=True, blank=True, on_delete=models.SET_NULL + PublicBody, + null=True, + blank=True, + on_delete=models.SET_NULL, + verbose_name=_("responsible public body"), ) organization = models.ForeignKey( - Organization, null=True, blank=True, on_delete=models.SET_NULL + Organization, + null=True, + blank=True, + on_delete=models.SET_NULL, + verbose_name=_("organization"), ) - group = models.ForeignKey(Group, null=True, blank=True, on_delete=models.SET_NULL) + group = models.ForeignKey( + Group, null=True, blank=True, on_delete=models.SET_NULL, verbose_name=_("group") + ) class Meta: ordering = ("reference", "title") @@ -141,27 +168,48 @@ class GovernmentPlan(models.Model): class GovernmentPlanUpdate(models.Model): plan = models.ForeignKey( - GovernmentPlan, on_delete=models.CASCADE, related_name="updates" + GovernmentPlan, + on_delete=models.CASCADE, + related_name="updates", + verbose_name=_("plan"), ) user = models.ForeignKey( - settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.SET_NULL + settings.AUTH_USER_MODEL, + null=True, + blank=True, + on_delete=models.SET_NULL, + verbose_name=_("user"), ) organization = models.ForeignKey( - Organization, null=True, blank=True, on_delete=models.SET_NULL + Organization, + null=True, + blank=True, + on_delete=models.SET_NULL, + verbose_name=_("organization"), ) - timestamp = models.DateTimeField(default=timezone.now) - title = models.CharField(max_length=1024, blank=True) - content = models.TextField(blank=True) - url = models.URLField(blank=True) + timestamp = models.DateTimeField(default=timezone.now, verbose_name=_("timestamp")) + title = models.CharField(max_length=1024, blank=True, verbose_name=_("title")) + content = models.TextField(blank=True, verbose_name=_("content")) + url = models.URLField(blank=True, verbose_name=_("URL")) status = models.CharField( - max_length=25, choices=PlanStatus.choices, default="", blank=True + max_length=25, + choices=PlanStatus.choices, + default="", + blank=True, + verbose_name=_("status"), ) - rating = models.IntegerField(choices=PlanRating.choices, null=True, blank=True) - public = models.BooleanField(default=False) + rating = models.IntegerField( + choices=PlanRating.choices, null=True, blank=True, verbose_name=_("rating") + ) + public = models.BooleanField(default=False, verbose_name=_("is public?")) foirequest = models.ForeignKey( - FoiRequest, null=True, blank=True, on_delete=models.SET_NULL + FoiRequest, + null=True, + blank=True, + on_delete=models.SET_NULL, + verbose_name=_("FOI request"), ) class Meta: