diff --git a/apps/documents/views.py b/apps/documents/views.py index 2ec91ea873..a72f585313 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -117,11 +117,15 @@ def _handle_save_document(request, document, form=None): save_metadata_list(decode_metadata_from_url(request.GET), document) try: - document_create_fs_links(document) + warnings = document_create_fs_links(document) + if request.user.is_staff or request.user.is_superuser: + for warning in warnings: + messages.warning(request, warning) except Exception, e: messages.error(request, e) + def _handle_zip_file(request, uploaded_file, document_type): filename = getattr(uploaded_file, 'filename', getattr(uploaded_file, 'name', '')) if filename.lower().endswith('zip'): @@ -382,7 +386,12 @@ def document_edit(request, document_id): messages.success(request, _(u'Document %s edited successfully.') % document) try: - document_create_fs_links(document) + warnings = document_create_fs_links(document) + + if request.user.is_staff or request.user.is_superuser: + for warning in warnings: + messages.warning(request, warning) + messages.success(request, _(u'Document filesystem links updated successfully.')) except Exception, e: messages.error(request, e) @@ -433,7 +442,12 @@ def document_edit_metadata(request, document_id): messages.success(request, _(u'Metadata for document %s edited successfully.') % document) try: - document_create_fs_links(document) + warnings = document_create_fs_links(document) + + if request.user.is_staff or request.user.is_superuser: + for warning in warnings: + messages.warning(request, warning) + messages.success(request, _(u'Document filesystem links updated successfully.')) except Exception, e: messages.error(request, e) diff --git a/apps/filesystem_serving/api.py b/apps/filesystem_serving/api.py index 8da2c30b74..8f912c4c80 100644 --- a/apps/filesystem_serving/api.py +++ b/apps/filesystem_serving/api.py @@ -17,6 +17,7 @@ if SLUGIFY_PATHS == False: def document_create_fs_links(document): + warnings = [] if FILESERVING_ENABLE: if not document.exists(): raise Exception(_(u'Not creating metadata indexing, document not found in document storage')) @@ -39,12 +40,14 @@ def document_create_fs_links(document): next_available_filename(document, metadata_index, target_directory, slugify(document.file_filename), slugify(document.file_extension)) except NameError, exc: - raise NameError(_(u'Error in metadata indexing expression: %s') % exc) + warnings.append(_(u'Error in metadata indexing expression: %s') % exc) + #raise NameError() #This should be a warning not an error #pass except Exception, exc: raise Exception(_(u'Unable to create metadata indexing directory: %s') % exc) + return warnings def document_delete_fs_links(document): if FILESERVING_ENABLE: @@ -143,13 +146,13 @@ def do_recreate_all_links(raise_exception=True): for document in Document.objects.all(): try: - document_create_fs_links(document) - except NameError, e: - warnings.append('%s: %s' % (document, e)) + create_warnings = document_create_fs_links(document) except Exception, e: if raise_exception: raise Exception(e) else: errors.append('%s: %s' % (document, e)) + for warning in create_warnings: + warnings.append('%s: %s' % (document, e)) return errors, warnings