From ae3fe8cd423be5268d630a498361e376c6add776 Mon Sep 17 00:00:00 2001 From: substantialnoninfringinguser Date: Thu, 2 Jul 2009 20:43:18 +0100 Subject: [svn] Renaming troggle.expo to troggle.core. To do this, used: perl -p -i -e "s/expo(?=[\s\.']+)/core/g" `find -name \*.py` and then manually checked each change (had to remove a couple) --- core/admin.py | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 core/admin.py (limited to 'core/admin.py') diff --git a/core/admin.py b/core/admin.py new file mode 100644 index 0000000..e304966 --- /dev/null +++ b/core/admin.py @@ -0,0 +1,129 @@ +from troggle.core.models import * +from django.contrib import admin +from feincms.admin import editor +from django.forms import ModelForm +import django.forms as forms +from core.forms import LogbookEntryForm +from django.http import HttpResponse +from django.core import serializers +from core.views_other import downloadLogbook +#from troggle.reversion.admin import VersionAdmin #django-reversion version control + +#overriding admin save so we have the new since parsing field +class TroggleModelAdmin(admin.ModelAdmin): + def save_model(self, request, obj, form, change): + obj.new_since_parsing=True + obj.save() + +class RoleInline(admin.TabularInline): + model = PersonRole + extra = 4 + +class SurvexBlockAdmin(TroggleModelAdmin): + inlines = (RoleInline,) + +class ScannedImageInline(admin.TabularInline): + model = ScannedImage + extra = 4 + +class SurveyAdmin(TroggleModelAdmin): + inlines = (ScannedImageInline,) + search_fields = ('expedition__year','wallet_number') + +class QMsFoundInline(admin.TabularInline): + model=QM + fk_name='found_by' + +class PhotoInline(admin.TabularInline): + model = Photo + exclude = ['is_mugshot' ] + extra = 1 + +class PersonTripInline(admin.TabularInline): + model = PersonTrip + exclude = ['persontrip_next','Delete'] + extra = 1 + +#class LogbookEntryAdmin(VersionAdmin): +class LogbookEntryAdmin(TroggleModelAdmin): + prepopulated_fields = {'slug':("title",)} + search_fields = ('title','expedition__year') + date_heirarchy = ('date') + inlines = (PersonTripInline, PhotoInline, QMsFoundInline) + form = LogbookEntryForm + + actions=('export_logbook_entries_as_html','export_logbook_entries_as_txt') + + def export_logbook_entries_as_html(modeladmin, request, queryset): + response=downloadLogbook(request=request, queryset=queryset, extension='html') + return response + + def export_logbook_entries_as_txt(modeladmin, request, queryset): + response=downloadLogbook(request=request, queryset=queryset, extension='txt') + return response + +class PersonExpeditionInline(admin.TabularInline): + model = PersonExpedition + extra = 1 + +class PersonAdmin(TroggleModelAdmin): + search_fields = ('first_name','last_name') + inlines = (PersonExpeditionInline,) + +class QMAdmin(TroggleModelAdmin): + search_fields = ('found_by__cave__kataster_number','number','found_by__date') + list_display = ('__unicode__','grade','found_by','ticked_off_by') + list_display_links = ('__unicode__',) + list_editable = ('found_by','ticked_off_by','grade') + list_per_page = 20 + +class PersonExpeditionAdmin(TroggleModelAdmin): + search_fields = ('person__first_name','expedition__year') + +class CaveAdmin(TroggleModelAdmin): + search_fields = ('official_name','kataster_number','unofficial_number') + #inlines = (QMInline,) + extra = 4 + +class SubcaveAdmin(editor.TreeEditorMixin,TroggleModelAdmin): + pass + +admin.site.register(Photo) +admin.site.register(Subcave, SubcaveAdmin) +admin.site.register(Cave, CaveAdmin) +admin.site.register(Area) +admin.site.register(OtherCaveName) +admin.site.register(CaveAndEntrance) +admin.site.register(SurveyStation) +admin.site.register(Entrance) +admin.site.register(SurvexBlock, SurvexBlockAdmin) +admin.site.register(Expedition) +admin.site.register(Person,PersonAdmin) +admin.site.register(PersonRole) +admin.site.register(PersonExpedition,PersonExpeditionAdmin) +admin.site.register(Role) +admin.site.register(LogbookEntry, LogbookEntryAdmin) +#admin.site.register(PersonTrip) +admin.site.register(QM, QMAdmin) +admin.site.register(Survey, SurveyAdmin) +admin.site.register(ScannedImage) + +def export_as_json(modeladmin, request, queryset): + response = HttpResponse(mimetype="text/json") + response['Content-Disposition'] = 'attachment; filename=troggle_output.json' + serializers.serialize("json", queryset, stream=response) + return response + +def export_as_xml(modeladmin, request, queryset): + response = HttpResponse(mimetype="text/xml") + response['Content-Disposition'] = 'attachment; filename=troggle_output.xml' + serializers.serialize("xml", queryset, stream=response) + return response + +admin.site.add_action(export_as_xml) +admin.site.add_action(export_as_json) + +try: + mptt.register(Subcave, order_insertion_by=['name']) +except mptt.AlreadyRegistered: + print "mptt already registered" -- cgit v1.2.3