# HG changeset patch # User rougeronj # Date 1352388301 -3600 # Node ID 7a614efbaadbd9e23f474e14734788557104f01e # Parent 5d08847528ddaba6c8eff1971494c782cacc5a84 update error management in content creation diff -r 5d08847528dd -r 7a614efbaadb 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})