get_image_form now takes model parameter

This makes creating projects with multiple image models easier
pull/886/head
Karl Hobley 2014-12-23 12:16:44 +00:00
rodzic 0ffaa5c271
commit 2904050af5
4 zmienionych plików z 12 dodań i 14 usunięć

Wyświetl plik

@ -2,7 +2,6 @@ from django import forms
from django.forms.models import modelform_factory
from django.utils.translation import ugettext as _
from wagtail.wagtailimages.models import get_image_model
from wagtail.wagtailimages.formats import get_image_formats
from wagtail.wagtailimages.fields import WagtailImageField
@ -17,9 +16,9 @@ def formfield_for_dbfield(db_field, **kwargs):
return db_field.formfield(**kwargs)
def get_image_form():
def get_image_form(model):
return modelform_factory(
get_image_model(),
model,
formfield_callback=formfield_for_dbfield,
# set the 'file' widget to a FileInput rather than the default ClearableFileInput
# so that when editing, we don't get the 'currently: ...' banner which is

Wyświetl plik

@ -37,7 +37,7 @@ def chooser(request):
Image = get_image_model()
if request.user.has_perm('wagtailimages.add_image'):
ImageForm = get_image_form()
ImageForm = get_image_form(Image)
uploadform = ImageForm()
else:
uploadform = None
@ -113,7 +113,7 @@ def image_chosen(request, image_id):
@permission_required('wagtailimages.add_image')
def chooser_upload(request):
Image = get_image_model()
ImageForm = get_image_form()
ImageForm = get_image_form(Image)
searchform = SearchForm()

Wyświetl plik

@ -80,7 +80,7 @@ def index(request):
@permission_required('wagtailadmin.access_admin') # more specific permission tests are applied within the view
def edit(request, image_id):
Image = get_image_model()
ImageForm = get_image_form()
ImageForm = get_image_form(Image)
image = get_object_or_404(Image, id=image_id)
@ -217,8 +217,8 @@ def delete(request, image_id):
@permission_required('wagtailimages.add_image')
def add(request):
ImageForm = get_image_form()
ImageModel = get_image_model()
ImageForm = get_image_form(ImageModel)
if request.POST:
image = ImageModel(uploaded_by_user=request.user)

Wyświetl plik

@ -29,14 +29,13 @@ def json_response(document):
return HttpResponse(json.dumps(document), content_type='application/json')
def get_image_edit_form():
Image = get_image_model()
ImageForm = get_image_form()
def get_image_edit_form(ImageModel):
ImageForm = get_image_form(ImageModel)
# Make a new form with the file and focal point fields excluded
class ImageEditForm(ImageForm):
class Meta(ImageForm.Meta):
model = Image
model = ImageModel
exclude = (
'file',
'focal_point_x',
@ -52,7 +51,7 @@ def get_image_edit_form():
@vary_on_headers('X-Requested-With')
def add(request):
Image = get_image_model()
ImageForm = get_image_form()
ImageForm = get_image_form(Image)
if request.method == 'POST':
if not request.is_ajax():
@ -80,7 +79,7 @@ def add(request):
'image_id': int(image.id),
'form': render_to_string('wagtailimages/multiple/edit_form.html', {
'image': image,
'form': get_image_edit_form()(instance=image, prefix='image-%d' % image.id),
'form': get_image_edit_form(Image)(instance=image, prefix='image-%d' % image.id),
}, context_instance=RequestContext(request)),
})
else:
@ -105,7 +104,7 @@ def add(request):
@permission_required('wagtailadmin.access_admin') # more specific permission tests are applied within the view
def edit(request, image_id, callback=None):
Image = get_image_model()
ImageForm = get_image_edit_form()
ImageForm = get_image_edit_form(Image)
image = get_object_or_404(Image, id=image_id)