Łatwiejsze wybieranie galerii dla dokumentów w interfejsie administracyjnym.
authorzuber <marek@stepniowski.com>
Thu, 5 Nov 2009 23:14:15 +0000 (00:14 +0100)
committerzuber <marek@stepniowski.com>
Thu, 5 Nov 2009 23:14:15 +0000 (00:14 +0100)
apps/explorer/admin.py
apps/explorer/models.py

index 10c3e79..097514a 100644 (file)
@@ -1,7 +1,30 @@
 from django.contrib import admin
+from django import forms
+import os
+
+from django.conf import settings
 
 import explorer.models
 
 admin.site.register(explorer.models.EditorSettings)
 admin.site.register(explorer.models.EditorPanel)
-admin.site.register(explorer.models.GalleryForDocument)
\ No newline at end of file
+
+
+class GalleryAdminForm(forms.ModelForm):
+    subpath = forms.ChoiceField(choices=())
+    
+    def __init__(self, *args, **kwargs):
+        super(GalleryAdminForm, self).__init__(*args, **kwargs)
+        self.fields['subpath'].choices = [(x, x) for x in os.listdir(settings.MEDIA_ROOT + settings.IMAGE_DIR)]
+        
+    class Meta:
+        mode = explorer.models.GalleryForDocument
+        fields = ('document', 'subpath',)
+
+
+class GalleryAdmin(admin.ModelAdmin):
+    form = GalleryAdminForm
+    list_display = ('document', 'subpath',)
+    search_fields = ('document', 'subpath',)
+
+admin.site.register(explorer.models.GalleryForDocument, GalleryAdmin)
\ No newline at end of file
index 73e9063..e104cda 100644 (file)
@@ -58,13 +58,14 @@ class EditorPanel(models.Model):
 
 # Yes, this is intentionally unnormalized !
 class GalleryForDocument(models.Model):
-    name = models.CharField(max_length=100)
-    
-    # directory containing scans under MEDIA_ROOT/
-    subpath = models.CharField(max_length=255)
+    name = models.CharField(max_length=100, blank=True)
 
     # document associated with the gallery
-    document = models.CharField(max_length=255)
+    document = models.CharField(max_length=255, unique=True)
+        
+    # directory containing scans under MEDIA_ROOT/
+    subpath = models.CharField(max_length=255)
 
     def __unicode__(self):
-        return u"%s:%s" % (self.subpath, self.document)
\ No newline at end of file
+        return u"%s:%s" % (self.subpath, self.document)
+