Make foirequest connection optional on setup

This commit is contained in:
Stefan Wehrmeyer 2023-02-03 15:42:17 +01:00
parent 2521759625
commit 18002103b2
4 changed files with 334 additions and 279 deletions

View file

@ -242,7 +242,9 @@ class GovernmentPlanAdmin(admin.ModelAdmin):
class GovernmentPlanUpdateAdmin(admin.ModelAdmin):
form = GovernmentPlanUpdateForm
save_on_top = True
raw_id_fields = ("user", "foirequest")
raw_id_fields = ["user"] + (
["foirequest"] if conf.GOVPLAN_ENABLE_FOIREQUEST else []
)
date_hierarchy = "timestamp"
search_fields = ("title", "content")
list_display = (

View file

@ -8,19 +8,31 @@ from django.db import migrations, models
import filer.fields.image
import taggit.managers
from .. import conf
class Migration(migrations.Migration):
initial = True
dependencies = [
dependencies = (
[
("publicbody", "0039_publicbody_alternative_emails"),
("auth", "0012_alter_user_first_name_max_length"),
]
+ (
[
("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 = [
migrations.CreateModel(
@ -217,6 +229,9 @@ class Migration(migrations.Migration):
),
),
("public", models.BooleanField(default=False)),
]
+ (
[
(
"foirequest",
models.ForeignKey(
@ -225,7 +240,12 @@ class Migration(migrations.Migration):
on_delete=django.db.models.deletion.SET_NULL,
to="foirequest.foirequest",
),
),
)
]
if conf.GOVPLAN_ENABLE_FOIREQUEST
else []
)
+ [
(
"organization",
models.ForeignKey(

View file

@ -5,6 +5,8 @@ import django.utils.timezone
from django.conf import settings
from django.db import migrations, models
from .. import conf
class Migration(migrations.Migration):
@ -13,11 +15,15 @@ class Migration(migrations.Migration):
("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"),
]
] + (
[("foirequest", "0054_alter_foirequest_options")]
if conf.GOVPLAN_ENABLE_FOIREQUEST
else []
)
operations = [
operations = (
[
migrations.AddField(
model_name="governmentplan",
name="due_date",
@ -26,7 +32,9 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name="governmentplan",
name="measure",
field=models.CharField(blank=True, max_length=255, verbose_name="measure"),
field=models.CharField(
blank=True, max_length=255, verbose_name="measure"
),
),
migrations.AddField(
model_name="governmentplan",
@ -71,12 +79,16 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name="government",
name="slug",
field=models.SlugField(max_length=255, unique=True, verbose_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"),
field=models.DateField(
blank=True, null=True, verbose_name="start date"
),
),
migrations.AlterField(
model_name="governmentplan",
@ -156,7 +168,9 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name="governmentplan",
name="slug",
field=models.SlugField(max_length=255, unique=True, verbose_name="slug"),
field=models.SlugField(
max_length=255, unique=True, verbose_name="slug"
),
),
migrations.AlterField(
model_name="governmentplan",
@ -184,6 +198,9 @@ class Migration(migrations.Migration):
name="content",
field=models.TextField(blank=True, verbose_name="content"),
),
]
+ (
[
migrations.AlterField(
model_name="governmentplanupdate",
name="foirequest",
@ -195,6 +212,11 @@ class Migration(migrations.Migration):
verbose_name="FOI request",
),
),
]
if conf.GOVPLAN_ENABLE_FOIREQUEST
else []
)
+ [
migrations.AlterField(
model_name="governmentplanupdate",
name="organization",
@ -264,7 +286,9 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name="governmentplanupdate",
name="title",
field=models.CharField(blank=True, max_length=1024, verbose_name="title"),
field=models.CharField(
blank=True, max_length=1024, verbose_name="title"
),
),
migrations.AlterField(
model_name="governmentplanupdate",
@ -283,3 +307,4 @@ class Migration(migrations.Migration):
),
),
]
)

View file

@ -15,7 +15,6 @@ from filer.fields.image import FilerImageField
from taggit.managers import TaggableManager
from taggit.models import TaggedItemBase
from froide.foirequest.models import FoiRequest
from froide.follow.models import Follower
from froide.georegion.models import GeoRegion
from froide.organization.models import Organization
@ -32,6 +31,12 @@ except ImportError:
PlaceholderField = None
if conf.GOVPLAN_ENABLE_FOIREQUEST:
from froide.foirequest.models import FoiRequest
else:
FoiRequest = None
class PlanStatus(models.TextChoices):
NOT_STARTED = ("not_started", _("not started"))
STARTED = ("started", _("started"))
@ -308,6 +313,8 @@ class GovernmentPlan(models.Model):
return "govplan:plan@{}".format(self.pk)
def get_related_foirequests(self):
if FoiRequest is None:
return []
if not self.responsible_publicbody:
return []
if hasattr(self, "_related_foirequests"):
@ -363,6 +370,7 @@ class GovernmentPlanUpdate(models.Model):
)
public = models.BooleanField(default=False, verbose_name=_("is public?"))
if FoiRequest:
foirequest = models.ForeignKey(
FoiRequest,
null=True,