Add fields, add verbose_name to all fields
This commit is contained in:
parent
a0447d7a15
commit
1881afe825
2 changed files with 363 additions and 30 deletions
285
froide_govplan/migrations/0003_auto_20220228_1051.py
Normal file
285
froide_govplan/migrations/0003_auto_20220228_1051.py
Normal file
|
|
@ -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",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -36,17 +36,22 @@ class PlanRating(models.IntegerChoices):
|
||||||
|
|
||||||
|
|
||||||
class Government(models.Model):
|
class Government(models.Model):
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255, verbose_name=_("name"))
|
||||||
slug = models.SlugField(max_length=255, unique=True)
|
slug = models.SlugField(max_length=255, unique=True, verbose_name=_("slug"))
|
||||||
|
|
||||||
public = models.BooleanField(default=False)
|
public = models.BooleanField(default=False, verbose_name=_("is public?"))
|
||||||
jurisdiction = models.ForeignKey(Jurisdiction, null=True, on_delete=models.SET_NULL)
|
jurisdiction = models.ForeignKey(
|
||||||
description = models.TextField(blank=True)
|
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)
|
start_date = models.DateField(null=True, blank=True, verbose_name=_("start date"))
|
||||||
end_date = models.DateField(null=True, blank=True)
|
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:
|
class Meta:
|
||||||
verbose_name = _("Government")
|
verbose_name = _("Government")
|
||||||
|
|
@ -68,9 +73,11 @@ class CategorizedGovernmentPlan(TaggedItemBase):
|
||||||
|
|
||||||
|
|
||||||
class GovernmentPlan(models.Model):
|
class GovernmentPlan(models.Model):
|
||||||
government = models.ForeignKey(Government, on_delete=models.CASCADE)
|
government = models.ForeignKey(
|
||||||
title = models.CharField(max_length=255)
|
Government, on_delete=models.CASCADE, verbose_name=_("government")
|
||||||
slug = models.SlugField(max_length=255, unique=True)
|
)
|
||||||
|
title = models.CharField(max_length=255, verbose_name=_("title"))
|
||||||
|
slug = models.SlugField(max_length=255, unique=True, verbose_name=_("slug"))
|
||||||
|
|
||||||
image = FilerImageField(
|
image = FilerImageField(
|
||||||
null=True,
|
null=True,
|
||||||
|
|
@ -80,28 +87,48 @@ class GovernmentPlan(models.Model):
|
||||||
on_delete=models.SET_NULL,
|
on_delete=models.SET_NULL,
|
||||||
)
|
)
|
||||||
|
|
||||||
description = models.TextField(blank=True)
|
description = models.TextField(blank=True, verbose_name=_("description"))
|
||||||
public = models.BooleanField(default=False)
|
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(
|
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(
|
categories = TaggableManager(
|
||||||
through=CategorizedGovernmentPlan, verbose_name=_("categories"), blank=True
|
through=CategorizedGovernmentPlan, verbose_name=_("categories"), blank=True
|
||||||
)
|
)
|
||||||
responsible_publicbody = models.ForeignKey(
|
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 = 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:
|
class Meta:
|
||||||
ordering = ("reference", "title")
|
ordering = ("reference", "title")
|
||||||
|
|
@ -141,27 +168,48 @@ class GovernmentPlan(models.Model):
|
||||||
|
|
||||||
class GovernmentPlanUpdate(models.Model):
|
class GovernmentPlanUpdate(models.Model):
|
||||||
plan = models.ForeignKey(
|
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(
|
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 = 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)
|
timestamp = models.DateTimeField(default=timezone.now, verbose_name=_("timestamp"))
|
||||||
title = models.CharField(max_length=1024, blank=True)
|
title = models.CharField(max_length=1024, blank=True, verbose_name=_("title"))
|
||||||
content = models.TextField(blank=True)
|
content = models.TextField(blank=True, verbose_name=_("content"))
|
||||||
url = models.URLField(blank=True)
|
url = models.URLField(blank=True, verbose_name=_("URL"))
|
||||||
|
|
||||||
status = models.CharField(
|
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)
|
rating = models.IntegerField(
|
||||||
public = models.BooleanField(default=False)
|
choices=PlanRating.choices, null=True, blank=True, verbose_name=_("rating")
|
||||||
|
)
|
||||||
|
public = models.BooleanField(default=False, verbose_name=_("is public?"))
|
||||||
|
|
||||||
foirequest = models.ForeignKey(
|
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:
|
class Meta:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue