summaryrefslogtreecommitdiff
path: root/app/blog/admin.py
blob: c4b7e774cdd9652ebb639490d87c673a08954b45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
from django.contrib import admin
from django import forms
from blog.models import Entry, PostImage, EntryAside
from blog.widgets import AdminImageWidget
from django.contrib.gis.admin import OSMGeoAdmin
from django.contrib.gis.maps.google import GoogleMap
from django.conf import settings
from models import *


GMAP = GoogleMap(key=settings.GOOGLE_MAPS_API_KEY)

class EntryAsideInline(admin.TabularInline):
    model = EntryAside
    extra = 1


class EntryAsideAdmin(admin.ModelAdmin):
    pass

class BlogEntryForm(forms.ModelForm):
    class Meta:
        model = Entry
        widgets = {
             'body_markdown': forms.Textarea(attrs={'rows':50, 'cols':100}),
        }
    def clean_point(self):
        try:
            location = Location.objects.filter(geometry__contains=self.cleaned_data['point']).get()
            self.location = location
        except Location.DoesNotExist:
            raise forms.ValidationError("There is no location associated with that point")
        return self.cleaned_data['point']


class EntryAdmin(OSMGeoAdmin):
    form = BlogEntryForm
    inlines = [EntryAsideInline,]
    def formfield_for_dbfield(self, db_field, **kwargs):
        if db_field.name == 'thumbnail' or db_field.name == 'image' :
            field = forms.FileField(widget=AdminImageWidget)
        else:
            field = super(EntryAdmin,self).formfield_for_dbfield(db_field,**kwargs)
        return field
    list_display = ('title', 'pub_date','template_name', 'status','region','location','photo_gallery')           
    search_fields = ['title', 'body_markdown']
    prepopulated_fields = {"slug" : ('title',)}
    list_filter = ('pub_date', 'enable_comments', 'status','location__state__country__lux_region',)
    fieldsets = (
      ('Entry', {'fields': ('title','body_markdown', ('pub_date', 'status'), 'slug','point'), 'classes': ('show','extrapretty','wide')}),
      ('Formatting data', {'fields': ('dek','meta_description', ('image','thumbnail',),'template_name'), 'classes': ('grp-collapse grp-closed',)}),
    )
    
    class Media:
        js = ['/media/admin/custom/model.js']
    map_template = 'gis/admin/osm.html'
    # Default GeoDjango OpenLayers map options
    # Uncomment and modify as desired
    # To learn more about this jargon visit:
    # www.openlayers.org
    
    default_lon = -9314310
    default_lat = 3991847
    default_zoom = 6
    #display_wkt = False
    #display_srid = False
    #extra_js = []
    #num_zoom = 18
    #max_zoom = False
    #min_zoom = False
    #units = False
    #max_resolution = False
    #max_extent = False
    #modifiable = True
    #mouse_position = True
    #scale_text = True
    #layerswitcher = True
    scrollable = False
    #admin_media_prefix = settings.ADMIN_MEDIA_PREFIX
    map_width = 700
    map_height = 325
    #map_srid = 4326
    #map_template = 'gis/admin/openlayers.html'
    #openlayers_url = 'http://openlayers.org/api/2.6/OpenLayers.js'
    #wms_url = 'http://labs.metacarta.com/wms/vmap0'
    #wms_layer = 'basic'
    #wms_name = 'OpenLayers WMS'
    #debug = False
    #widget = OpenLayersWidget


class PostImageAdmin(admin.ModelAdmin):
	list_display = ('title', 'post_image')
	
admin.site.register(PostImage, PostImageAdmin)	
admin.site.register(EntryAside, EntryAsideAdmin)	
admin.site.register(Entry, EntryAdmin)