Skip to content

Commit

Permalink
Add django-unfold admin panel
Browse files Browse the repository at this point in the history
  • Loading branch information
anorthall committed Jul 21, 2023
1 parent 31e0e2c commit cdc2073
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 13 deletions.
9 changes: 6 additions & 3 deletions app/comments/admin.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
from comments.models import Comment
from django.contrib.admin import ModelAdmin, register
from django.contrib import admin

from unfold.admin import ModelAdmin

@register(Comment)
from .models import Comment


@admin.register(Comment)
class CommentAdmin(ModelAdmin):
list_display = ("author", "trip", "added")
list_filter = ("added",)
Expand Down
5 changes: 4 additions & 1 deletion app/core/admin.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
from django.conf import settings
from django.contrib import admin

from unfold.admin import ModelAdmin

from .models import FAQ, News


# Set global admin site headers
admin.site.site_header = "caves.app"
admin.site.site_title = "caves.app"
Expand All @@ -12,7 +15,7 @@
admin.site.site_title = "caves.app dev"


class AutoAssignAuthorModelAdmin(admin.ModelAdmin):
class AutoAssignAuthorModelAdmin(ModelAdmin):
def save_model(self, request, obj, form, change):
"""Set the author to the current user if it is a new item"""
if obj.author is None:
Expand Down
19 changes: 14 additions & 5 deletions app/logger/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,18 @@
from django.forms import ModelForm
from logger.forms import DistanceUnitFormMixin

from distancefield import DistanceField
from unfold.admin import ModelAdmin, TabularInline
from unfold.widgets import UnfoldAdminTextInputWidget

from .models import Trip, TripPhoto, TripReport


class TripAdminForm(DistanceUnitFormMixin, ModelForm):
pass


class TripPhotoInline(admin.TabularInline):
class TripPhotoInline(TabularInline):
model = TripPhoto
fk_name = "trip"
extra = 0
Expand All @@ -21,7 +25,7 @@ def has_add_permission(self, request, obj=None):
return False


class TripReportInline(admin.TabularInline):
class TripReportInline(TabularInline):
model = TripReport
fk_name = "trip"
extra = 0
Expand All @@ -34,7 +38,7 @@ def has_add_permission(self, request, obj=None):


@admin.register(Trip)
class TripAdmin(admin.ModelAdmin):
class TripAdmin(ModelAdmin):
form = TripAdminForm
inlines = [TripPhotoInline, TripReportInline]
search_fields = (
Expand Down Expand Up @@ -68,6 +72,11 @@ class TripAdmin(admin.ModelAdmin):
"updated",
)
ordering = ("-added",)
formfield_overrides = {
DistanceField: {
"widget": UnfoldAdminTextInputWidget,
}
}
fieldsets = (
(
"Internal data",
Expand Down Expand Up @@ -131,7 +140,7 @@ class TripAdmin(admin.ModelAdmin):


@admin.register(TripPhoto)
class TripPhotoAdmin(admin.ModelAdmin):
class TripPhotoAdmin(ModelAdmin):
list_display = ("user", "trip", "deleted_at", "taken", "added")
list_display_links = ("taken",)
list_filter = ("is_valid", "deleted_at", "added")
Expand Down Expand Up @@ -169,7 +178,7 @@ class TripPhotoAdmin(admin.ModelAdmin):


@admin.register(TripReport)
class TripReportAdmin(admin.ModelAdmin):
class TripReportAdmin(ModelAdmin):
list_display = ("user", "title", "trip", "added")
list_display_links = ("title",)
list_filter = ("added", "updated", "pub_date")
Expand Down
10 changes: 6 additions & 4 deletions app/users/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,23 @@
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin

from unfold.admin import ModelAdmin, TabularInline

from .forms import UserAdminChangeForm, UserCreationForm
from .models import FriendRequest, Notification

User = get_user_model()


class NotificationInline(admin.TabularInline):
class NotificationInline(TabularInline):
model = Notification
readonly_fields = ["message", "url", "read"]
can_delete = False
extra = 0
max_num = 0


class FriendRequestSentInline(admin.TabularInline):
class FriendRequestSentInline(TabularInline):
model = FriendRequest
readonly_fields = ["user_from"]
can_delete = False
Expand All @@ -26,7 +28,7 @@ class FriendRequestSentInline(admin.TabularInline):
max_num = 0


class FriendRequestRecdInline(admin.TabularInline):
class FriendRequestRecdInline(TabularInline):
model = FriendRequest
readonly_fields = ["user_to"]
can_delete = False
Expand All @@ -37,7 +39,7 @@ class FriendRequestRecdInline(admin.TabularInline):


@admin.register(User)
class CavingUserAdmin(BaseUserAdmin):
class CavingUserAdmin(BaseUserAdmin, ModelAdmin):
inlines = [
NotificationInline,
FriendRequestSentInline,
Expand Down
1 change: 1 addition & 0 deletions config/django/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ def env(name, default=None, force_type: Any = str):
"crispy_bootstrap5",
"django_htmx",
"markdownify.apps.MarkdownifyConfig",
"unfold",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
Expand Down
1 change: 1 addition & 0 deletions config/requirements/development.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ django-rich==1.7.0
django-storages==1.13.2
django-timezone-field==5.1
django-tinymce==3.6.1
django-unfold==0.6.9
ExifRead==3.0.0
factory-boy==3.3.0
Faker==19.1.0
Expand Down
1 change: 1 addition & 0 deletions config/requirements/production.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ django-ratelimit==4.0.0
django-storages==1.13.2
django-timezone-field==5.1
django-tinymce==3.6.1
django-unfold==0.6.9
ExifRead==3.0.0
gunicorn==21.2.0
hiredis==2.2.3
Expand Down

0 comments on commit cdc2073

Please sign in to comment.