summaryrefslogtreecommitdiffstats
path: root/core/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/admin.py')
-rw-r--r--core/admin.py113
1 files changed, 63 insertions, 50 deletions
diff --git a/core/admin.py b/core/admin.py
index e9d75e6..e60583e 100644
--- a/core/admin.py
+++ b/core/admin.py
@@ -4,37 +4,41 @@ from django.core import serializers
from django.forms import ModelForm
from django.http import HttpResponse
-from troggle.core.models.caves import (Area, Cave, CaveAndEntrance,
- Entrance)
-from troggle.core.models.logbooks import (QM, LogbookEntry, PersonLogEntry)
-from troggle.core.models.survex import (DrawingFile, SingleScan, SurvexBlock,
- SurvexDirectory, SurvexFile,
- SurvexPersonRole, SurvexStation)
+from troggle.core.models.caves import Area, Cave, CaveAndEntrance, Entrance
+from troggle.core.models.logbooks import QM, LogbookEntry, PersonLogEntry
+from troggle.core.models.survex import (
+ DrawingFile,
+ SingleScan,
+ SurvexBlock,
+ SurvexDirectory,
+ SurvexFile,
+ SurvexPersonRole,
+ SurvexStation,
+)
from troggle.core.models.wallets import Wallet
-from troggle.core.models.troggle import (DataIssue, Expedition, Person,
- PersonExpedition)
+from troggle.core.models.troggle import DataIssue, Expedition, Person, PersonExpedition
from troggle.core.views.other import exportlogbook
-'''This code significantly adds to the capabilities of the Django Management control panel for Troggle data.
+"""This code significantly adds to the capabilities of the Django Management control panel for Troggle data.
In particular, it enables JSON export of any data with 'export_as_json'
and configures the search fields to be used within the control panel.
What is the search path for the css and js inclusions in the Media subclasses though ?!
The page looks for /static/jquery/jquery.min.js
-'''
+"""
+
class TroggleModelAdmin(admin.ModelAdmin):
-
def save_model(self, request, obj, form, change):
"""overriding admin save to fill the new_since parsing_field
-
+
new_since_parsing is not currently used in troggle. It is a fossil."""
- obj.new_since_parsing=True
+ obj.new_since_parsing = True
obj.save()
-
+
class Media:
- js = ('jquery/jquery.min.js','js/QM_helper.js') # not currently available to troggle, see media/js/README
+ js = ("jquery/jquery.min.js", "js/QM_helper.js") # not currently available to troggle, see media/js/README
class RoleInline(admin.TabularInline):
@@ -47,35 +51,35 @@ class SurvexBlockAdmin(TroggleModelAdmin):
class QMsFoundInline(admin.TabularInline):
- model=QM
- fk_name='found_by'
- fields=('number','grade','location_description','comment')#need to add foreignkey to cave part
- extra=1
-
+ model = QM
+ fk_name = "found_by"
+ fields = ("number", "grade", "location_description", "comment") # need to add foreignkey to cave part
+ extra = 1
+
class PersonLogEntryInline(admin.TabularInline):
model = PersonLogEntry
- raw_id_fields = ('personexpedition',)
+ raw_id_fields = ("personexpedition",)
extra = 1
class LogbookEntryAdmin(TroggleModelAdmin):
- prepopulated_fields = {'slug':("title",)}
- search_fields = ('title','expedition__year')
- date_heirarchy = ('date')
+ prepopulated_fields = {"slug": ("title",)}
+ search_fields = ("title", "expedition__year")
+ date_heirarchy = "date"
inlines = (PersonLogEntryInline, QMsFoundInline)
+
class Media:
- css = {
- "all": ("css/troggleadmin.css",) # this does not exist
- }
- actions=('export_logbook_entries_as_html','export_logbook_entries_as_txt')
-
+ css = {"all": ("css/troggleadmin.css",)} # this does not exist
+
+ actions = ("export_logbook_entries_as_html", "export_logbook_entries_as_txt")
+
def export_logbook_entries_as_html(self, modeladmin, request, queryset):
- response=downloadLogbook(request=request, queryset=queryset, extension='html') #fails, no queryset
+ response = downloadLogbook(request=request, queryset=queryset, extension="html") # fails, no queryset
return response
-
+
def export_logbook_entries_as_txt(self, modeladmin, request, queryset):
- response=downloadLogbook(request=request, queryset=queryset, extension='txt') #fails, no queryset
+ response = downloadLogbook(request=request, queryset=queryset, extension="txt") # fails, no queryset
return response
@@ -85,45 +89,53 @@ class PersonExpeditionInline(admin.TabularInline):
class PersonAdmin(TroggleModelAdmin):
- search_fields = ('first_name','last_name')
+ search_fields = ("first_name", "last_name")
inlines = (PersonExpeditionInline,)
class QMAdmin(TroggleModelAdmin):
- search_fields = ('found_by__cave__kataster_number','number','found_by__date')
- list_display = ('__str__','grade','found_by','ticked_off_by')
- list_display_links = ('__str__',)
- list_editable = ('found_by','ticked_off_by','grade')
+ search_fields = ("found_by__cave__kataster_number", "number", "found_by__date")
+ list_display = ("__str__", "grade", "found_by", "ticked_off_by")
+ list_display_links = ("__str__",)
+ list_editable = ("found_by", "ticked_off_by", "grade")
list_per_page = 20
- raw_id_fields=('found_by','ticked_off_by')
+ raw_id_fields = ("found_by", "ticked_off_by")
class PersonExpeditionAdmin(TroggleModelAdmin):
- search_fields = ('person__first_name','expedition__year')
+ search_fields = ("person__first_name", "expedition__year")
class CaveAdmin(TroggleModelAdmin):
- search_fields = ('official_name','kataster_number','unofficial_number')
+ search_fields = ("official_name", "kataster_number", "unofficial_number")
extra = 4
class EntranceAdmin(TroggleModelAdmin):
- search_fields = ('caveandentrance__cave__kataster_number',)
+ search_fields = ("caveandentrance__cave__kataster_number",)
+
class SurvexStationAdmin(TroggleModelAdmin):
- search_fields = ('name',)
+ search_fields = ("name",)
+
class SurvexFileAdmin(TroggleModelAdmin):
- search_fields = ('path',)
+ search_fields = ("path",)
+
class SurvexDirectoryAdmin(TroggleModelAdmin):
- search_fields = ('path', 'survexdirectory',)
+ search_fields = (
+ "path",
+ "survexdirectory",
+ )
+
class DrawingFileAdmin(TroggleModelAdmin):
- search_fields = ('dwgname',)
+ search_fields = ("dwgname",)
+
class WalletAdmin(TroggleModelAdmin):
- search_fields = ('fpath',)
+ search_fields = ("fpath",)
admin.site.register(Cave, CaveAdmin)
@@ -133,28 +145,29 @@ admin.site.register(Entrance, EntranceAdmin)
admin.site.register(SurvexBlock, SurvexBlockAdmin)
admin.site.register(DrawingFile, DrawingFileAdmin)
admin.site.register(Expedition)
-admin.site.register(Person,PersonAdmin)
+admin.site.register(Person, PersonAdmin)
admin.site.register(SurvexPersonRole)
admin.site.register(SurvexDirectory, SurvexDirectoryAdmin)
admin.site.register(SurvexFile, SurvexFileAdmin)
admin.site.register(SurvexStation, SurvexStationAdmin)
-admin.site.register(PersonExpedition,PersonExpeditionAdmin)
+admin.site.register(PersonExpedition, PersonExpeditionAdmin)
admin.site.register(LogbookEntry, LogbookEntryAdmin)
admin.site.register(QM, QMAdmin)
admin.site.register(Wallet, WalletAdmin)
admin.site.register(SingleScan)
admin.site.register(DataIssue)
+
def export_as_json(modeladmin, request, queryset):
response = HttpResponse(content_type="text/json")
- response['Content-Disposition'] = 'attachment; filename=troggle_output.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(content_type="text/xml")
- response['Content-Disposition'] = 'attachment; filename=troggle_output.xml'
+ response["Content-Disposition"] = "attachment; filename=troggle_output.xml"
serializers.serialize("xml", queryset, stream=response)
return response