evorepo/main/admin.py
Dan McGee 6a3274dea1 Ensure all mirror URLs are saved with a trailing slash
Add a clean_url() function to a custom ModelForm to accomplish this.

Signed-off-by: Dan McGee <dan@archlinux.org>
2009-02-06 17:10:21 -05:00

80 lines
2.2 KiB
Python

from django import forms
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from archweb_dev.main.models import (AltForum, Arch, Donor,
Mirror, MirrorProtocol, MirrorUrl, MirrorRsync,
Package, Press, Repo, UserProfile)
class AltForumAdmin(admin.ModelAdmin):
list_display = ('language', 'name')
list_filter = ('language',)
ordering = ['name']
search_fields = ('name',)
class DonorAdmin(admin.ModelAdmin):
ordering = ['name']
search_fields = ('name',)
class MirrorUrlForm(forms.ModelForm):
class Meta:
model = MirrorUrl
def clean_url(self):
# ensure we always save the URL with a trailing slash
url = self.cleaned_data["url"].strip()
if url[-1] == '/':
return url
return url + '/'
class MirrorUrlInlineAdmin(admin.TabularInline):
model = MirrorUrl
form = MirrorUrlForm
extra = 3
class MirrorRsyncInlineAdmin(admin.TabularInline):
model = MirrorRsync
extra = 2
class MirrorAdmin(admin.ModelAdmin):
list_display = ('name', 'country', 'active', 'public', 'isos', 'notes')
list_filter = ('country', 'active', 'public')
ordering = ['country', 'name']
search_fields = ('name',)
inlines = [
MirrorUrlInlineAdmin,
MirrorRsyncInlineAdmin,
]
class PackageAdmin(admin.ModelAdmin):
list_display = ('pkgname', '_reponame', '_archname', '_maintainername')
list_filter = ('repo', 'arch', 'maintainer')
ordering = ['pkgname']
search_fields = ('pkgname',)
class PressAdmin(admin.ModelAdmin):
list_display = ('name', 'url')
ordering = ['name']
search_fields = ('name',)
admin.site.unregister(User)
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserProfileAdmin(UserAdmin):
inlines = [UserProfileInline]
admin.site.register(User, UserProfileAdmin)
admin.site.register(AltForum, AltForumAdmin)
admin.site.register(Donor, DonorAdmin)
admin.site.register(Mirror, MirrorAdmin)
admin.site.register(MirrorProtocol)
admin.site.register(Package, PackageAdmin)
admin.site.register(Press, PressAdmin)
admin.site.register(Arch)
admin.site.register(Repo)
# vim: set ts=4 sw=4 et: