Commits

Mikhail Korobov committed 1491d54

Better error handling for ajax requests.

Comments (0)

Files changed (2)

photo_albums/views.py

     template_variants = _get_template_names(obj, template)
     return render_to_response(template_variants, context_instance=context)
 
+def get_prepared_errors(form):
+    return dict([(unicode(f), unicode(form.errors[f][0]),) for f in form.errors]) #todo: get rif of errors[f][0]
+
 
 #==============================================================================
 
 
 
 @login_required
+@ajax_request
 @album_site_method()
 def upload_main_image(request, obj, album_site, context):
     ''' Upload 1 image and make it main image in gallery '''
             return HttpResponseRedirect(success_url) # Redirect after POST
         else:
             if request.is_ajax():
-                return HttpResponse(form.errors.as_text())
+                return get_prepared_errors(form)
     else:
         form = album_site.upload_form_class()
 
 
 
 @login_required
+@ajax_request
 @album_site_method()
 def upload_zip(request, obj, album_site, context):
     ''' Upload zip archive with images, extract them, check if they are correct
             return HttpResponseRedirect(success_url)
         else:
             if request.is_ajax():
-                return HttpResponse(form.errors.as_text())
+                return get_prepared_errors(form)
     else:
         form = form_class(request.user, obj)
 
     return _render('upload_zip.html', obj, context)
 
 @login_required
+@ajax_request
 @album_site_method()
 def upload_images(request, obj, album_site, context):
     ''' Upload several images at once '''
             return HttpResponseRedirect(success_url) # Redirect after POST
         else:
             if request.is_ajax():
-                return HttpResponse(formset.errors.as_text())
+                return get_prepared_errors(formset)
     else:
         formset = FormsetCls(queryset = AttachedImage.objects.none())
 
 
 setup(
       name='django-photo-albums',
-      version='0.20.5',
+      version='0.20.6',
       author='Mikhail Korobov',
       author_email='kmike84@gmail.com',
       url='http://bitbucket.org/kmike/django-photo-albums/',
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.