Skip to content

Commit

Permalink
Clean up add button on reverse inlines
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew-Dickinson committed Jul 6, 2024
1 parent 05d225e commit 7b38912
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 8 deletions.
4 changes: 2 additions & 2 deletions src/meshapi/admin/building.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from django.db.models import QuerySet
from django.http import HttpRequest

from meshapi.admin.inlines import InstallInline
from meshapi.admin.inlines import InstallInlineBuildingPage
from meshapi.models import Building
from meshapi.widgets import PanoramaViewer

Expand Down Expand Up @@ -118,5 +118,5 @@ class BuildingAdmin(admin.ModelAdmin):
},
),
]
inlines = [InstallInline]
inlines = [InstallInlineBuildingPage]
filter_horizontal = ("nodes",)
18 changes: 18 additions & 0 deletions src/meshapi/admin/inlines.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ class NonrelatedBuildingInline(BetterNonrelatedInline):
readonly_fields = fields

add_button = True
reverse_relation = "primary_node"

# Hack to get the NN
network_number = None
Expand Down Expand Up @@ -136,3 +137,20 @@ class InstallInline(BetterInline):
model = Install
fields = ["status", "node", "member", "building", "unit"]
readonly_fields = fields # type: ignore[assignment]


class InstallInlineNodePage(InstallInline):
add_button = True
reverse_relation = "primary_node"
bulk_add_button = True


class InstallInlineBuildingPage(InstallInline):
add_button = True
reverse_relation = "building"
bulk_add_button = True


class InstallInlineMemberPage(InstallInline):
add_button = True
reverse_relation = "member"
4 changes: 2 additions & 2 deletions src/meshapi/admin/member.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from django import forms
from django.contrib import admin

from meshapi.admin.inlines import InstallInline
from meshapi.admin.inlines import InstallInlineMemberPage
from meshapi.models import Member


Expand Down Expand Up @@ -84,4 +84,4 @@ class MemberAdmin(admin.ModelAdmin):
},
),
]
inlines = [InstallInline]
inlines = [InstallInlineMemberPage]
4 changes: 2 additions & 2 deletions src/meshapi/admin/node.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from meshapi.admin.inlines import (
BuildingMembershipInline,
DeviceInline,
InstallInline,
InstallInlineNodePage,
NodeLinkInline,
NonrelatedBuildingInline,
PanoramaInline,
Expand Down Expand Up @@ -77,7 +77,7 @@ class NodeAdmin(admin.ModelAdmin):
]
inlines = [
PanoramaInline,
InstallInline,
InstallInlineNodePage,
NonrelatedBuildingInline,
BuildingMembershipInline,
DeviceInline,
Expand Down
9 changes: 9 additions & 0 deletions src/meshapi/static/admin/install_tabular.css
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,12 @@ td.original p {
.inline-group .tabular tr.has_original td {
padding-top: 5px;
}

.inline-action-row {
padding: 12px 14px 12px;
margin: 0 0 10px;
overflow: hidden;
display: flex;
gap: 20px;
flex-wrap: wrap;
}
4 changes: 2 additions & 2 deletions src/meshapi/templates/admin/install_tabular.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ <h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}</h2>
</table>
</fieldset>
<!--TODO: Add collapsible menu to add existing buildings...?-->
<div>
<div class="inline-action-row">
{% if inline_admin_formset.opts.add_button %}
<a href="{{ request.scheme }}://{{ request.get_host }}{% url 'admin:meshapi_building_add' %}?primary_node={{ inline_admin_formset.opts.network_number }}" class="addlink">Add</a>
<a href="{{ request.scheme }}://{{ request.get_host }}{% url 'admin:'|add:inline_admin_formset.opts.opts.db_table|add:'_add' %}?{{ inline_admin_formset.opts.reverse_relation }}={{ object_id }}" class="addlink">Add {{ inline_admin_formset.opts.verbose_name|capfirst }}</a>
{% endif %}
</div>
</div>
Expand Down

0 comments on commit 7b38912

Please sign in to comment.