update error management in content creation
authorrougeronj
Thu, 08 Nov 2012 16:25:01 +0100
changeset 916 7a614efbaadb
parent 915 5d08847528dd
child 917 9251909ce0f2
update error management in content creation
src/ldt/ldt/ldt_utils/views/content.py
--- a/src/ldt/ldt/ldt_utils/views/content.py	Thu Nov 08 16:10:08 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/content.py	Thu Nov 08 16:25:01 2012 +0100
@@ -124,10 +124,7 @@
                     if cleaned_data['src'].startswith("rtmp://") or cleaned_data['src'].startswith("http://"):
                         cleaned_data['videopath'] = ''
                         
-                        try:
-                            media, created = Media.objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
-                        except Exception, e:
-                            raise e
+                        media, created = Media.objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
                 
                 elif media_input_type == "url" or media_input_type == "upload" :
                     # copy file
@@ -203,18 +200,15 @@
                     
                     
                     if form_status != "error":
-                        try:
-                            del cleaned_data["media_file"]
-                            if not cleaned_data['videopath']:
-                                cleaned_data['videopath'] = settings.STREAM_URL
-                            mimetype = cleaned_data.get('mimetype_field', None)
-                            if not mimetype:
-                                mimetype = mimetypes.guess_type(cleaned_data['src'])
-                            cleaned_data['mimetype_field'] = mimetype
-                            media, created = Media.safe_objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
-                            cached_assign('view_media', request.user, media)
-                        except Exception, e:
-                            raise e
+                        del cleaned_data["media_file"]
+                        if not cleaned_data['videopath']:
+                            cleaned_data['videopath'] = settings.STREAM_URL
+                        mimetype = cleaned_data.get('mimetype_field', None)
+                        if not mimetype:
+                            mimetype = mimetypes.guess_type(cleaned_data['src'])
+                        cleaned_data['mimetype_field'] = mimetype
+                        media, created = Media.safe_objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
+                        cached_assign('view_media', request.user, media)
                     else:
                         media = None
                         
@@ -237,10 +231,8 @@
                                    
                     for key in ["media_input_type", "groups", "is_public", "read_list", "write_list", "share" ]:
                         del content_defaults[key]
-                    try:
-                        content, created = Content.safe_objects.get_or_create(iri_id=content_form.cleaned_data['iri_id'], defaults=content_defaults) #@UndefinedVariable
-                    except Exception, e:
-                        raise e
+                        
+                    content, created = Content.safe_objects.get_or_create(iri_id=content_form.cleaned_data['iri_id'], defaults=content_defaults) #@UndefinedVariable
                                       
                     if not created and not request.user.has_perm('ldt_utils.change_content', content):
                         raise AttributeError("%s is not allowed to change content %s" % (request.user, content))
@@ -270,24 +262,19 @@
                         if request.user.is_staff and content_defaults.has_key('front_project'):
                             content.front_project = content_defaults['front_project']
                     
-                    try:
-                        content.save()
-                        picture_form.model = content
-                        picture_form.save()  
-                        form_status = 'saved'
-                        media_form = MediaForm(instance=media, prefix="media")
-                        content_form = ContentForm(instance=content, prefix="content")
-                        picture_form = PictureForm()
-                    except Exception, e:
-                        raise e
+                    content.save()
+                    picture_form.model = content
+                    picture_form.save()  
+                    form_status = 'saved'
+                    media_form = MediaForm(instance=media, prefix="media")
+                    content_form = ContentForm(instance=content, prefix="content")
+                    picture_form = PictureForm()
             else:
                 form_status = 'error'
         except Exception, e:
             transaction.rollback()
-            __, value, tb = sys.exc_info()
-            errors_transaction.append(e)
-            errors_transaction.append(traceback.format_tb(tb))
-            return False, False, False, False, False, errors_transaction
+            __, value, traceback = sys.exc_info()
+            return False, False, False, False, False, errors_transaction, e, traceback
             
     else:
         form_status = 'empty'
@@ -316,9 +303,10 @@
     except Exception, e:
         transaction.rollback()
         errors_transaction.append(e)
-        return False, False, False, False, False, errors_transaction
+        type, value, traceback = sys.exc_info()
+        return False, False, False, False, False, errors_transaction, e, traceback
         
-    return content_form, media_form, picture_form, form_status, current_front_project, errors_transaction
+    return content_form, media_form, picture_form, form_status, current_front_project, errors_transaction, "", ""
 
 @login_required
 def write_content(request, iri_id=None):  
@@ -369,7 +357,7 @@
     elif submit_action=="close":
         return redirect("root-view")
     else:
-        content_form, media_form, picture_form, form_status, current_front_project, errors_transaction = write_content_base(request, iri_id)        
+        content_form, media_form, picture_form, form_status, current_front_project, errors_transaction, e, traceback = write_content_base(request, iri_id)        
         if iri_id:
             content_temp = Content.objects.get(iri_id=iri_id)
             media_temp = content_temp.media_obj
@@ -382,7 +370,8 @@
     if (deleted == False)  or (content_form == False and media_form == False and picture_form == False and form_status == False and current_front_project == False):
         message=_("An error occurred - Please try again or contact webmaster")
         title = _("Error")
-        return render_to_response('ldt/ldt_utils/error_confirm.html', {'errors':errors_transaction, 'message':message, 'title': title}, context_instance=RequestContext(request))
+        logging.error(e)
+        raise e, None, traceback
     
     if iri_id:
         create_content_action = reverse('ldt.ldt_utils.views.content.write_content', kwargs={'iri_id':iri_id})