40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""Django administration interface for `~projects.models.Project`
|
|
and related models.
|
|
"""
|
|
|
|
from builds.models import Version
|
|
from django.contrib import admin
|
|
from projects.models import (Project, ImportedFile, ProjectRelationship,
|
|
EmailHook, WebHook)
|
|
from guardian.admin import GuardedModelAdmin
|
|
|
|
|
|
class ProjectRelationshipInline(admin.TabularInline):
|
|
model = ProjectRelationship
|
|
fk_name = 'parent'
|
|
|
|
|
|
class VersionInline(admin.TabularInline):
|
|
model = Version
|
|
|
|
|
|
class ProjectAdmin(GuardedModelAdmin):
|
|
prepopulated_fields = {'slug': ('name',)}
|
|
list_display = ('name', 'repo', 'repo_type', 'featured', 'theme')
|
|
list_filter = ('repo_type', 'featured', 'privacy_level')
|
|
list_editable = ('featured',)
|
|
search_fields = ('name', 'repo')
|
|
inlines = [ProjectRelationshipInline, VersionInline]
|
|
raw_id_fields = ('users',)
|
|
|
|
|
|
class ImportedFileAdmin(admin.ModelAdmin):
|
|
list_display = ('name', 'version')
|
|
list_filter = ('project',)
|
|
|
|
|
|
admin.site.register(Project, ProjectAdmin)
|
|
admin.site.register(ImportedFile, ImportedFileAdmin)
|
|
admin.site.register(EmailHook)
|
|
admin.site.register(WebHook)
|