Skip to content

Commit

Permalink
Merge pull request #435 from GermanZero-de/433
Browse files Browse the repository at this point in the history
#433 -  Move checklists in the admin interface out of the city form
  • Loading branch information
cafischer authored Apr 25, 2024
2 parents 174f1b3 + cdf5a5f commit 3bc41c4
Show file tree
Hide file tree
Showing 12 changed files with 396 additions and 88 deletions.
57 changes: 26 additions & 31 deletions cpmonitor/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,16 @@
from treebeard.forms import movenodeform_factory, MoveNodeForm

from cpmonitor.views import SelectCityView, CapEditView

from . import rules, utils
from .models import (
Chart,
City,
Task,
CapChecklist,
AdministrationChecklist,
LocalGroup,
Invitation,
EnergyPlanChecklist,
CapChecklist,
)


Expand Down Expand Up @@ -81,32 +80,6 @@ class ChartInline(ObjectPermissionsModelAdminMixin, admin.StackedInline):
}


class CapChecklistInline(ObjectPermissionsModelAdminMixin, admin.StackedInline):
model = CapChecklist

formfield_overrides = {
models.TextField: {"widget": AdminMartorWidget},
}


class AdministrationChecklistInline(
ObjectPermissionsModelAdminMixin, admin.StackedInline
):
model = AdministrationChecklist

formfield_overrides = {
models.TextField: {"widget": AdminMartorWidget},
}


class EnergyPlanChecklistInline(ObjectPermissionsModelAdminMixin, admin.StackedInline):
model = EnergyPlanChecklist

formfield_overrides = {
models.TextField: {"widget": AdminMartorWidget},
}


class LocalGroupInline(ObjectPermissionsModelAdminMixin, admin.StackedInline):
model = LocalGroup

Expand Down Expand Up @@ -143,6 +116,28 @@ def invitation_link(self, invitation: Invitation):
)


class ChecklistAdmin(ObjectPermissionsModelAdminMixin, admin.ModelAdmin):
formfield_overrides = {
models.TextField: {"widget": AdminMartorWidget},
}

save_on_top = True

def get_readonly_fields(self, request, obj=None):
if obj:
return ("city",)
else:
return ()

def get_changeform_initial_data(self, request: HttpRequest):
query_string = self.get_preserved_filters(request)
filters = QueryDict(query_string).get("_changelist_filters")
city_id = QueryDict(filters).get(_city_filter_query)
return {
"city": city_id,
}


class CityAdmin(ObjectPermissionsModelAdminMixin, admin.ModelAdmin):
# ------ change list page ------
list_display = ("zipcode", "name", "teaser", "edit_tasks")
Expand Down Expand Up @@ -191,9 +186,6 @@ def get_readonly_fields(self, request: HttpRequest, obj=None) -> Sequence[str]:
inlines = [
ChartInline,
LocalGroupInline,
CapChecklistInline,
AdministrationChecklistInline,
EnergyPlanChecklistInline,
InvitationInline,
]

Expand Down Expand Up @@ -399,3 +391,6 @@ def add_view(self, request, form_url="", extra_context=None):

admin.site.register(City, CityAdmin)
admin.site.register(Task, TaskAdmin)
admin.site.register(CapChecklist, ChecklistAdmin)
admin.site.register(AdministrationChecklist, ChecklistAdmin)
admin.site.register(EnergyPlanChecklist, ChecklistAdmin)
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Generated by Django 4.2.9 on 2024-04-10 16:24

from django.db import migrations


class Migration(migrations.Migration):
dependencies = [
("cpmonitor", "0042_localgroup_logo_alter_localgroup_featured_image"),
]

operations = [
migrations.AlterModelOptions(
name="administrationchecklist",
options={
"verbose_name": "Checkliste zu Verwaltungsstrukturen",
"verbose_name_plural": "Checklisten zu Verwaltungsstrukturen",
},
),
migrations.AlterModelOptions(
name="capchecklist",
options={
"verbose_name": "Checkliste zum KAP",
"verbose_name_plural": "Checklisten zum KAP",
},
),
migrations.AlterModelOptions(
name="energyplanchecklist",
options={
"verbose_name": "Checkliste zur Wärmeplanung",
"verbose_name_plural": "Checklisten zur Wärmeplanung",
},
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Generated by Django 4.2.9 on 2024-04-10 19:34

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("cpmonitor", "0043_alter_administrationchecklist_options_and_more"),
]

operations = [
migrations.AlterField(
model_name="administrationchecklist",
name="climate_protection_management_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="administrationchecklist",
name="climate_protection_monitoring_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="administrationchecklist",
name="climate_relevance_check_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="administrationchecklist",
name="guidelines_for_sustainable_procurement_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="administrationchecklist",
name="intersectoral_concepts_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="administrationchecklist",
name="municipal_office_for_funding_management_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="administrationchecklist",
name="public_relation_with_local_actors_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="annual_costs_are_specified_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="annual_reduction_of_emissions_can_be_predicted_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="based_on_remaining_co2_budget_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="cap_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="concept_for_participation_specified_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="scenario_for_business_as_usual_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="scenario_for_climate_neutrality_till_2035_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="sectors_of_climate_vision_used_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="target_date_exists_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="tasks_are_planned_yearly_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
migrations.AlterField(
model_name="capchecklist",
name="tasks_have_responsible_entity_rationale",
field=models.TextField(blank=True, verbose_name="Begründung"),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Generated by Django 4.2.9 on 2024-04-12 07:51

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):
dependencies = [
(
"cpmonitor",
"0044_alter_administrationchecklist_climate_protection_management_exists_rationale_and_more",
),
]

operations = [
migrations.AlterField(
model_name="administrationchecklist",
name="city",
field=models.OneToOneField(
on_delete=django.db.models.deletion.PROTECT,
related_name="administration_checklist",
to="cpmonitor.city",
verbose_name="Stadt",
),
),
migrations.AlterField(
model_name="capchecklist",
name="city",
field=models.OneToOneField(
on_delete=django.db.models.deletion.PROTECT,
related_name="cap_checklist",
to="cpmonitor.city",
verbose_name="Stadt",
),
),
migrations.AlterField(
model_name="energyplanchecklist",
name="city",
field=models.OneToOneField(
on_delete=django.db.models.deletion.PROTECT,
related_name="energy_plan_checklist",
to="cpmonitor.city",
verbose_name="Stadt",
),
),
]
Loading

0 comments on commit 3bc41c4

Please sign in to comment.