Make foirequest connection optional on setup
This commit is contained in:
parent
2521759625
commit
18002103b2
4 changed files with 334 additions and 279 deletions
|
|
@ -242,7 +242,9 @@ class GovernmentPlanAdmin(admin.ModelAdmin):
|
||||||
class GovernmentPlanUpdateAdmin(admin.ModelAdmin):
|
class GovernmentPlanUpdateAdmin(admin.ModelAdmin):
|
||||||
form = GovernmentPlanUpdateForm
|
form = GovernmentPlanUpdateForm
|
||||||
save_on_top = True
|
save_on_top = True
|
||||||
raw_id_fields = ("user", "foirequest")
|
raw_id_fields = ["user"] + (
|
||||||
|
["foirequest"] if conf.GOVPLAN_ENABLE_FOIREQUEST else []
|
||||||
|
)
|
||||||
date_hierarchy = "timestamp"
|
date_hierarchy = "timestamp"
|
||||||
search_fields = ("title", "content")
|
search_fields = ("title", "content")
|
||||||
list_display = (
|
list_display = (
|
||||||
|
|
|
||||||
|
|
@ -8,19 +8,31 @@ from django.db import migrations, models
|
||||||
import filer.fields.image
|
import filer.fields.image
|
||||||
import taggit.managers
|
import taggit.managers
|
||||||
|
|
||||||
|
from .. import conf
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = [
|
dependencies = (
|
||||||
("publicbody", "0039_publicbody_alternative_emails"),
|
[
|
||||||
("auth", "0012_alter_user_first_name_max_length"),
|
("publicbody", "0039_publicbody_alternative_emails"),
|
||||||
("foirequest", "0054_alter_foirequest_options"),
|
("auth", "0012_alter_user_first_name_max_length"),
|
||||||
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
|
]
|
||||||
("organization", "0001_initial"),
|
+ (
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
[
|
||||||
]
|
("foirequest", "0054_alter_foirequest_options"),
|
||||||
|
]
|
||||||
|
if conf.GOVPLAN_ENABLE_FOIREQUEST
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
+ [
|
||||||
|
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
|
||||||
|
("organization", "0001_initial"),
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
|
@ -217,15 +229,23 @@ class Migration(migrations.Migration):
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
("public", models.BooleanField(default=False)),
|
("public", models.BooleanField(default=False)),
|
||||||
(
|
]
|
||||||
"foirequest",
|
+ (
|
||||||
models.ForeignKey(
|
[
|
||||||
blank=True,
|
(
|
||||||
null=True,
|
"foirequest",
|
||||||
on_delete=django.db.models.deletion.SET_NULL,
|
models.ForeignKey(
|
||||||
to="foirequest.foirequest",
|
blank=True,
|
||||||
),
|
null=True,
|
||||||
),
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
to="foirequest.foirequest",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
if conf.GOVPLAN_ENABLE_FOIREQUEST
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
+ [
|
||||||
(
|
(
|
||||||
"organization",
|
"organization",
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@ import django.utils.timezone
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
from .. import conf
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
|
@ -13,273 +15,296 @@ class Migration(migrations.Migration):
|
||||||
("publicbody", "0039_publicbody_alternative_emails"),
|
("publicbody", "0039_publicbody_alternative_emails"),
|
||||||
("organization", "0001_initial"),
|
("organization", "0001_initial"),
|
||||||
("auth", "0012_alter_user_first_name_max_length"),
|
("auth", "0012_alter_user_first_name_max_length"),
|
||||||
("foirequest", "0054_alter_foirequest_options"),
|
|
||||||
("froide_govplan", "0002_auto_20220215_2113"),
|
("froide_govplan", "0002_auto_20220215_2113"),
|
||||||
]
|
] + (
|
||||||
|
[("foirequest", "0054_alter_foirequest_options")]
|
||||||
|
if conf.GOVPLAN_ENABLE_FOIREQUEST
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
|
||||||
operations = [
|
operations = (
|
||||||
migrations.AddField(
|
[
|
||||||
model_name="governmentplan",
|
migrations.AddField(
|
||||||
name="due_date",
|
model_name="governmentplan",
|
||||||
field=models.DateField(blank=True, null=True, verbose_name="due date"),
|
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.AddField(
|
||||||
migrations.AlterField(
|
model_name="governmentplan",
|
||||||
model_name="government",
|
name="measure",
|
||||||
name="name",
|
field=models.CharField(
|
||||||
field=models.CharField(max_length=255, verbose_name="name"),
|
blank=True, max_length=255, verbose_name="measure"
|
||||||
),
|
),
|
||||||
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.AddField(
|
||||||
migrations.AlterField(
|
model_name="governmentplan",
|
||||||
model_name="governmentplan",
|
name="quote",
|
||||||
name="group",
|
field=models.TextField(blank=True, verbose_name="quote"),
|
||||||
field=models.ForeignKey(
|
|
||||||
blank=True,
|
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.SET_NULL,
|
|
||||||
to="auth.group",
|
|
||||||
verbose_name="group",
|
|
||||||
),
|
),
|
||||||
),
|
migrations.AlterField(
|
||||||
migrations.AlterField(
|
model_name="government",
|
||||||
model_name="governmentplan",
|
name="description",
|
||||||
name="organization",
|
field=models.TextField(blank=True, verbose_name="description"),
|
||||||
field=models.ForeignKey(
|
|
||||||
blank=True,
|
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.SET_NULL,
|
|
||||||
to="organization.organization",
|
|
||||||
verbose_name="organization",
|
|
||||||
),
|
),
|
||||||
),
|
migrations.AlterField(
|
||||||
migrations.AlterField(
|
model_name="government",
|
||||||
model_name="governmentplan",
|
name="end_date",
|
||||||
name="public",
|
field=models.DateField(blank=True, null=True, verbose_name="end date"),
|
||||||
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(
|
||||||
migrations.AlterField(
|
model_name="government",
|
||||||
model_name="governmentplan",
|
name="jurisdiction",
|
||||||
name="reference",
|
field=models.ForeignKey(
|
||||||
field=models.CharField(
|
null=True,
|
||||||
blank=True, max_length=255, verbose_name="reference"
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
to="publicbody.jurisdiction",
|
||||||
|
verbose_name="jurisdiction",
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
migrations.AlterField(
|
||||||
migrations.AlterField(
|
model_name="government",
|
||||||
model_name="governmentplan",
|
name="name",
|
||||||
name="responsible_publicbody",
|
field=models.CharField(max_length=255, verbose_name="name"),
|
||||||
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(
|
||||||
migrations.AlterField(
|
model_name="government",
|
||||||
model_name="governmentplan",
|
name="planning_document",
|
||||||
name="slug",
|
field=models.URLField(blank=True, verbose_name="planning document"),
|
||||||
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(
|
||||||
migrations.AlterField(
|
model_name="government",
|
||||||
model_name="governmentplan",
|
name="public",
|
||||||
name="title",
|
field=models.BooleanField(default=False, verbose_name="is public?"),
|
||||||
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(
|
||||||
migrations.AlterField(
|
model_name="government",
|
||||||
model_name="governmentplanupdate",
|
name="slug",
|
||||||
name="organization",
|
field=models.SlugField(
|
||||||
field=models.ForeignKey(
|
max_length=255, unique=True, verbose_name="slug"
|
||||||
blank=True,
|
),
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.SET_NULL,
|
|
||||||
to="organization.organization",
|
|
||||||
verbose_name="organization",
|
|
||||||
),
|
),
|
||||||
),
|
migrations.AlterField(
|
||||||
migrations.AlterField(
|
model_name="government",
|
||||||
model_name="governmentplanupdate",
|
name="start_date",
|
||||||
name="plan",
|
field=models.DateField(
|
||||||
field=models.ForeignKey(
|
blank=True, null=True, verbose_name="start date"
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
),
|
||||||
related_name="updates",
|
|
||||||
to="froide_govplan.governmentplan",
|
|
||||||
verbose_name="plan",
|
|
||||||
),
|
),
|
||||||
),
|
migrations.AlterField(
|
||||||
migrations.AlterField(
|
model_name="governmentplan",
|
||||||
model_name="governmentplanupdate",
|
name="description",
|
||||||
name="public",
|
field=models.TextField(blank=True, verbose_name="description"),
|
||||||
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(
|
||||||
migrations.AlterField(
|
model_name="governmentplan",
|
||||||
model_name="governmentplanupdate",
|
name="government",
|
||||||
name="status",
|
field=models.ForeignKey(
|
||||||
field=models.CharField(
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
blank=True,
|
to="froide_govplan.government",
|
||||||
choices=[
|
verbose_name="government",
|
||||||
("not_started", "not started"),
|
),
|
||||||
("started", "started"),
|
|
||||||
("partially_implemented", "partially implemented"),
|
|
||||||
("implemented", "implemented"),
|
|
||||||
("deferred", "deferred"),
|
|
||||||
],
|
|
||||||
default="",
|
|
||||||
max_length=25,
|
|
||||||
verbose_name="status",
|
|
||||||
),
|
),
|
||||||
),
|
migrations.AlterField(
|
||||||
migrations.AlterField(
|
model_name="governmentplan",
|
||||||
model_name="governmentplanupdate",
|
name="group",
|
||||||
name="timestamp",
|
field=models.ForeignKey(
|
||||||
field=models.DateTimeField(
|
blank=True,
|
||||||
default=django.utils.timezone.now, verbose_name="timestamp"
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
to="auth.group",
|
||||||
|
verbose_name="group",
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
migrations.AlterField(
|
||||||
migrations.AlterField(
|
model_name="governmentplan",
|
||||||
model_name="governmentplanupdate",
|
name="organization",
|
||||||
name="title",
|
field=models.ForeignKey(
|
||||||
field=models.CharField(blank=True, max_length=1024, verbose_name="title"),
|
blank=True,
|
||||||
),
|
null=True,
|
||||||
migrations.AlterField(
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
model_name="governmentplanupdate",
|
to="organization.organization",
|
||||||
name="url",
|
verbose_name="organization",
|
||||||
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",
|
|
||||||
),
|
),
|
||||||
),
|
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",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
if conf.GOVPLAN_ENABLE_FOIREQUEST
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
+ [
|
||||||
|
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",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ from filer.fields.image import FilerImageField
|
||||||
from taggit.managers import TaggableManager
|
from taggit.managers import TaggableManager
|
||||||
from taggit.models import TaggedItemBase
|
from taggit.models import TaggedItemBase
|
||||||
|
|
||||||
from froide.foirequest.models import FoiRequest
|
|
||||||
from froide.follow.models import Follower
|
from froide.follow.models import Follower
|
||||||
from froide.georegion.models import GeoRegion
|
from froide.georegion.models import GeoRegion
|
||||||
from froide.organization.models import Organization
|
from froide.organization.models import Organization
|
||||||
|
|
@ -32,6 +31,12 @@ except ImportError:
|
||||||
PlaceholderField = None
|
PlaceholderField = None
|
||||||
|
|
||||||
|
|
||||||
|
if conf.GOVPLAN_ENABLE_FOIREQUEST:
|
||||||
|
from froide.foirequest.models import FoiRequest
|
||||||
|
else:
|
||||||
|
FoiRequest = None
|
||||||
|
|
||||||
|
|
||||||
class PlanStatus(models.TextChoices):
|
class PlanStatus(models.TextChoices):
|
||||||
NOT_STARTED = ("not_started", _("not started"))
|
NOT_STARTED = ("not_started", _("not started"))
|
||||||
STARTED = ("started", _("started"))
|
STARTED = ("started", _("started"))
|
||||||
|
|
@ -308,6 +313,8 @@ class GovernmentPlan(models.Model):
|
||||||
return "govplan:plan@{}".format(self.pk)
|
return "govplan:plan@{}".format(self.pk)
|
||||||
|
|
||||||
def get_related_foirequests(self):
|
def get_related_foirequests(self):
|
||||||
|
if FoiRequest is None:
|
||||||
|
return []
|
||||||
if not self.responsible_publicbody:
|
if not self.responsible_publicbody:
|
||||||
return []
|
return []
|
||||||
if hasattr(self, "_related_foirequests"):
|
if hasattr(self, "_related_foirequests"):
|
||||||
|
|
@ -363,13 +370,14 @@ class GovernmentPlanUpdate(models.Model):
|
||||||
)
|
)
|
||||||
public = models.BooleanField(default=False, verbose_name=_("is public?"))
|
public = models.BooleanField(default=False, verbose_name=_("is public?"))
|
||||||
|
|
||||||
foirequest = models.ForeignKey(
|
if FoiRequest:
|
||||||
FoiRequest,
|
foirequest = models.ForeignKey(
|
||||||
null=True,
|
FoiRequest,
|
||||||
blank=True,
|
null=True,
|
||||||
on_delete=models.SET_NULL,
|
blank=True,
|
||||||
verbose_name=_("FOI request"),
|
on_delete=models.SET_NULL,
|
||||||
)
|
verbose_name=_("FOI request"),
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ("-timestamp",)
|
ordering = ("-timestamp",)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue