This repository has been archived by the owner on Jan 19, 2021. It is now read-only.
/
admin.py
54 lines (38 loc) · 1.58 KB
/
admin.py
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
from django import forms
from django.contrib import admin
from django.core.urlresolvers import reverse
from product_details import product_details
from sorl.thumbnail.admin import AdminImageMixin
import autocomplete_light
from models import Keyword, MozSpace, Photo
class KeywordAdmin(admin.StackedInline):
""" Keyword Inline Admin."""
model = Keyword
class PhotoAdmin(AdminImageMixin, admin.StackedInline):
""" Photo Inline Admin."""
model = Photo
class MozSpaceAdminForm(forms.ModelForm):
"""MozSpace Admin Form."""
def __init__(self, *args, **kwargs):
super(MozSpaceAdminForm, self).__init__(*args, **kwargs)
queryset = Photo.objects.none()
if 'instance' in kwargs:
queryset = Photo.objects.filter(mozspace__id=kwargs['instance'].id)
self.fields['cover_photo'].queryset = queryset
class meta:
model = MozSpace
class MozSpaceAdmin(admin.ModelAdmin):
form = MozSpaceAdminForm
inlines = [PhotoAdmin, KeywordAdmin]
search_fields = ['name']
list_display = ['name', 'city', 'country', 'coordinator_link']
form = autocomplete_light.modelform_factory(MozSpace)
def coordinator_link(self, obj):
url = reverse('admin:auth_user_change', args=[obj.id])
full_name = obj.coordinator.userprofile.full_name
return u'<a href="%s">%s</a>' % (url, full_name)
coordinator_link.allow_tags = True
coordinator_link.short_description = 'coordinator'
def country(self, obj):
return product_details.get_regions('en-US')[obj.country]
admin.site.register(MozSpace, MozSpaceAdmin)