Skip to content

Instantly share code, notes, and snippets.

@hanleybrand
Last active January 3, 2016 14:59
Show Gist options
  • Save hanleybrand/8479687 to your computer and use it in GitHub Desktop.
Save hanleybrand/8479687 to your computer and use it in GitHub Desktop.
replacement for rooibos-data-admin.py
from django.contrib import admin
# from django.contrib.sites.models import Site
from models import MetadataStandard, Field, FieldSet, FieldSetField, Record, FieldValue, Collection, Vocabulary, VocabularyTerm
class MetadataStandardAdmin(admin.ModelAdmin):
pass
class FieldAdmin(admin.ModelAdmin):
list_display = ('label', 'full_name', 'standard', 'eq_fields')
list_filter = ('standard', )
search_fields = ['name', ]
ordering = ('standard',)
filter_horizontal = ("equivalent",)
def eq_fields(self, obj):
return ", ".join([f.full_name for f in obj.get_equivalent_fields()])
class FieldSetFieldInline(admin.TabularInline):
model = FieldSetField
class FieldSetAdmin(admin.ModelAdmin):
inlines = [FieldSetFieldInline, ]
class FieldValueInline(admin.TabularInline):
model = FieldValue
raw_id_fields = ['owner', 'context_type', ]
class RecordAdmin(admin.ModelAdmin):
list_display = ('name', 'title', 'owner', 'get_image_url', 'get_absolute_url', 'shared')
inlines = [FieldValueInline, ]
raw_id_fields = ('owner', )
#TODO write a function that returns an actual working link inline
# might not be possible due to how django admin works?
# also server = localhost on run_server but needs to be 127.0.0.1:8000
# server = Site.objects.get_current()
# def media_url(self, obj):
# url = "".join((self.server.domain, obj.get_image_url()))
# return '<a href="http://%s" target=_blank>%s</a>' % (url, url)
class CollectionAdmin(admin.ModelAdmin):
pass
class VocabularyAdmin(admin.ModelAdmin):
pass
class VocabularyTermAdmin(admin.ModelAdmin):
pass
admin.site.register(Collection, CollectionAdmin)
admin.site.register(MetadataStandard, MetadataStandardAdmin)
admin.site.register(Field, FieldAdmin)
admin.site.register(FieldSet, FieldSetAdmin)
admin.site.register(Record, RecordAdmin)
admin.site.register(Vocabulary, VocabularyAdmin)
admin.site.register(VocabularyTerm, VocabularyTermAdmin)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment